一篇博客详解朴素贝叶斯解分类问题

目录

回归问题

大概内容与之前的类似,步骤仍是三步:详见我的另一篇博客
深度学习

  1. 定义function或neural network
  2. 定义loss函数,一般采取值越低越好,有MAE、MSE、Cross Entry等
  3. 定义optimization,选择最优的参数

正则化Regularization

在这里插入图片描述
正则化是解决过拟合的一种方式

重新定义loss函数,loss函数既包括原来的损失,又包括weight参数的平方和(不加bias的原因是:function曲线的平滑与否与bias无关)

L o s s n e w = L o s s o l d + λ ∑ i = 1 n ( w i ) 2 , λ 是 超 参 数 Loss_{new}=Loss_{old}+\lambda \sum _{i=1} ^n (w_i)^2,\lambda 是超参数 Lossnew=Lossold+λi=1n(wi)2,λ

我们一般期待比较平滑的最终的神经网络function,目的是为了减少输入噪声的影响。而比较平衡的function就要求它的输出对输入不敏感,也就要求输入的系数要比较小。

分类问题—类别之间是独立的

分类网课视频
https://zhuanlan.zhihu.com/p/127993180

为什么不用回归解分类问题

回归问题的求最佳参数过程中,会利用gradient
descent根据loss值对参数进行更新,从而选择一个loss最小的参数对应的函数。而这个函数可能并不适用于分类问题(下图以二分类为例)的函数解。

在这里插入图片描述

以概率的形式解分类问题

在做回归Regression时,output为真实有意义的数字,而在做分类classification时,output为离散的数字discret ,并没有实际意义。

抽盒机率→分类机率

在这里插入图片描述

在这里插入图片描述

抽盒时,设选中Box 1的概率为2/3,选中Box 2的概率是1/3。而Box 2中选中蓝球的概率是4/5,Box
2中选中蓝球的概率是2/5,故根据 贝叶斯公式 选中蓝球而它是来自Box 1的概率是

P ( B o x 1 ∣ B l u e ) = P ( B o x 1 ) × P ( B l u e ∣ B o x 1 ) P ( B o x 1 ) × P ( B l u e ∣ B o x 1 ) + P ( B o x 2 ) × P ( B l u e ∣ B o x 2 ) P(Box_1|Blue)=\frac {P(Box_1) \times P(Blue|Box_1)} {P(Box_1) \times P(Blue|Box_1)+P(Box_2) \times P(Blue|Box_2)} P(Box1Blue)=P(Box1)×P(BlueBox1)+P(Box2)×P(BlueBox2)P(Box1)×P(BlueBox1)

而将其演变为分类问题。则选中一个物体它是来自Class 1的概率是

P ( C 1 ∣ o ) = P ( C 1 ) × P ( o ∣ C 1 ) ∑ i = 1 n P ( C i ) × P ( o ∣ C i ) , P ( C i ) = n u m C i n u m a l l P(C_1|o)=\frac {P(C_1) \times P(o|C_1)} {\sum _{i=1} ^n P(C_i) \times P(o|C_i)},P(C_i)=\frac {num_{C_i}} {num_{all}} P(C1o)=i=1nP(Ci)×P(oCi)P(C1)×P(oC1)P(Ci)=numallnumCi

式中的P(Ci)很好求,根据样本总数以及该类别的总数目即可算出,难点是P(o|Ci)的计算

正态分布覆盖

原理

计算P(o|Ci)我们采用正态分布(Gaussian
Distribution)
因为可以把Ci想象成从一个正态分布中选出的若干个对象,这些对象即组成了样本中的Ci。而仍有一些其他的对象(也是该分布中的),但是并不在样本中的Ci。我们构造的分类器即可以通过输入这些对象,得到它所属的类别(分类)

在这里插入图片描述

也就是说一个分布产生一个类别。我们要做的即是根据所给训练集的样本分类推导出每个类别对应的分布函数。从而即可根据这些分布函数判断出是或不是这个类别(函数输出值>0.5则是该类别)。

在这里插入图片描述

高斯分布函数

f μ , Σ ( x ) = 1 ( 2 π ) D 2 1 ∣ Σ ∣ 1 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f_{\mu,\Sigma}(x)=\frac 1 {(2\pi)^\frac D 2} \frac 1 {|\Sigma|^\frac 1 2} exp(- \frac 1 2(x-\mu)^T \Sigma ^{-1} (x-\mu)) fμ,Σ(x)=(2π)2D1Σ211exp(21(xμ)TΣ1(xμ))

其中μ是这一类别的对象特征值的均值

Σ是这一类别的对象特征值的协方差矩阵

在这里插入图片描述

极大似然估计求最优参数

至于求μ和Σ,我们采用极大似然估计法,有两种计算方法:

  • 分别求μ和Σ对f的导函数,当其导函数为0时,则可求出Σ和μ值
  • 利用数学公式
    μ = 1 n ∑ i = 1 n x i , Σ = 1 n ∑ i = 1 n ( x i − μ ) ( x i − μ ) T \mu=\frac 1 n\sum _{i=1}^n x^i,\Sigma=\frac 1 n \sum _{i=1} ^n (x^i-\mu)(x^i-\mu)^T μ=n1i=1nxi,Σ=n1i=1n(xiμ)(xiμ)T

朴素贝叶斯法

但是如果按照上面的方案,这样每一个类别,它都会有自己的Σ,而Σ的参数数量是输入特征量的平方,所以既会导致输入参数过多,也会导致准确度降低。因此我们通常采用所有的类别有自己的μ,但是共用一个Σ

用同一个协方差

所有类别的正态分布函数均用同一个协方差会使边界boundary为直线liner model, 下面介绍这个Σ的求法:

Σ a l l = ∑ i = 1 n n u m C i n u m a l l Σ i \Sigma_{all}=\sum _{i=1} ^n \frac {num_{C_i}}{num_{all}} \Sigma_i Σall=i=1nnumallnumCiΣi

在这里插入图片描述

三步骤

  • 定义模型
    P ( C 1 ∣ o ) = P ( C 1 ) × P ( o ∣ C 1 ) ∑ i = 1 n P ( C i ) × P ( o ∣ C i ) , P ( C i ) = n u m C i n u m a l l P(C_1|o)=\frac {P(C_1) \times P(o|C_1)} {\sum _{i=1} ^n P(C_i) \times P(o|C_i)},P(C_i)=\frac {num_{C_i}} {num_{all}} P(C1o)=i=1nP(Ci)×P(oCi)P(C1)×P(oC1)P(Ci)=numallnumCi

    模型的简化

    在这里插入图片描述
    化简过程

    这也可以解释,为什么共用Σ,边界是直线

    所有类别的正态分布函数均用同一个协方差会使边界boundary为直线liner model

    之后我们会讲解如何直接得到w和b

  • 通过什么来评价模型中函数的好坏

    例如采用高斯分布,是通过μ和Σ来确定模型中函数的好坏

  • 寻找分布函数的最优参数

    通过极大似然估计

猜你喜欢

转载自blog.csdn.net/weixin_53966032/article/details/128255647