2019-06-12 | 统计学习方法笔记 | UNLOCK

读书笔记:朴素贝叶斯

宏观层面

从宏观层面看,朴素贝叶斯(Naive Bayes)是生成模型参数模型,是基于贝叶斯学习的分类模型,它根据训练集学习输入输出的联合概率分布即$P(X,Y)$, 结合贝叶斯定理,找到后验概率最大的输出。首先明确几个概念。

  • 全概率公式
    全概率表示达到某种结果或现象,有多种方式或原因,问达到的概率是多少或是造成这种结果的概率是多少。抽象化描述为,对一个完备事件组$A_1,A_2,\cdots, A_n$, 对于任意一个事件B发生,若如下公式成立,则成为全概率公式。
  • 贝叶斯定理
    首先解释下贝叶斯定理,然后通过例子来进行说明。用事件A和事件B来进行表示,贝叶斯定理公式为:

    新信息B出现后A的概率=A本身的概率*新信息带来的调整

    知乎上有篇贴字很好的解释了贝叶斯定理,见参考文献2.
    下面用数学形式来解释一下几个概念,结合当前的分类任务进行,令$X$表示输入特征向量,$Y$小时类别,则根据贝叶斯定理如下:

    在特征$X$情况下样本属于类别$Y$的概率,等于类别$Y$本身的概率与考虑特征$X$后新信息带来的调整

  • 后验概率
    从上面的式子可以看到,后验分布是在先知道结果$Y$的情况下由结果估计原因$X$的分布,即$P(Y|X)$为后验概率
  • 先验概率
    先验概率是根据已知知识、经验而的概率这里指$P(Y)$
  • 条件概率
    当给定条件发生变化后,会导致事件发生的可能性改变。比如,你背后站着一个人,让你猜是女人的概率是多大,你肯定猜50%,但如果告诉你这个人有长头发,那你猜这个人是女人的概率是90%,这种$P(女人|长头发)$表示的是在条件“长头发”下是女人的概率,即是条件概率.在当前分类场景下条件概率指$P(X|Y)$,在样本属于类别$Y$的情况下含有特征$X$的概率.

微观层面

公式详细推导过程

算法过程。

输入: 具有独立同分布的训练集$T=\{(x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n)\}$,其中样本个数为$N$, 类别个数为$K$.给定样本$X$
输出:样本$X$对应的类别$Y$
(1) 根据训练集$T$学习类别$Y$的先验概率分布$P(Y=c_k), k=1,2,\cdots,K$,实现时为统计各个类别的个数,即

其中$I$表示指示函数,若里面的内容相当则为1,不相等则为0
(2) 计算类别$Y$的条件概率分布$P(X=x|Y=c_k), k=1,2, \cdots, K$, 其中$x$代表的是样本中出现的特征,根据概率分布知识可以得到特征和类别的联合概率分布$P(X,Y)=P(X|Y)P(Y)$;根据朴素贝叶斯的假设,在类别确定的条件下,用于分类的特征都是相互独立的(朴素一词的来源),因此条件概率分布可以做如下转换,

在实际实现时,只需要统计每个类别下特征出现次数即可,如下:

(3) 根据学习到的模型即先验分布和条件分布,计算在输入特征向量$X$下的后验概率$P(Y=c_k|X=x)$,根据贝叶斯定理,

以上是朴素贝叶斯的基本公式,对于NB分类器,我们选择使得概率值最大的那一个
(4) 朴素贝叶斯分类器

上式中,对于所有的类别$c_k$分母值都是固定的,因此可以将上式进行简化,

(5) 上式中的条件概率$P(X=x_j|Y=c_k)$在训练过程都可以进行统计得到,因此可以得到样本$x$的类别$\hat{y}$

贝叶斯估计

  1. 在估计条件概率分布$P(x_i|y=c_k)$的过程中,可能会出现$y=c_k$次数为零的情况,这是因为数据集里数据太少的原因,而真实情况$c_k$的样本个数并不为0,因此需要采用其他方法进行处理。

  2. 假第$j$个特征$x_j$可能的取值为$\{a_{j,1},a_{j,2}, \cdots, a_{j,s_j} \}$,贝叶斯估计是假设特征在取每个特征值的时候都有一个先验计数$\lambda$,如下,

等价于特征$x_j$在各个可能的取值上增加了一个正数$\lambda$,如果$c_k$的样本数为0,则先验概率分布的值为$\frac{1}{s_j}$,为等可能的。

  1. 采用贝叶斯估计后,类别的先验概率分布调整为其中,当$\lambda=0$为极大似然估计;当$\lambda=1$时为拉普拉斯平滑;当$c_k$样本个数为0时,该类别先验为$\frac{\lambda}{N+K\lambda}$.

期望最小化

由以上的算法的原理过程可知,NB算法其实在做的是后验概率最大化,即$y={argmax}_{ck}P(Y=c_k)\prod_{j=1}^nP(X=x_j|Y=c_k)$
后验概率最大化等价于期望风险最小化。朴素贝叶斯算法对先验概率和条件概率的学习即使估计的过程,算法中采用极大似然估计。分析过程如下,假设选择的是0-1损失函数,

其中$f(X)$为分类决策函数,此时的期望风险为$R_{exp}(f)=E[L(Y,f(X))]$,该期望风险是对联合分布$P(X,Y)$取的,因此,

想要对上式求最小化,只需要对累积和中的每个元素求最小化,即在$X=x$求最小值

因此后验概率最大化就等价于期望风险最小化。

优缺点是什么?

优点:

  1. 算法简单、直观、可以快速获得baseline效果
  2. 可以进行增量学习

缺点:

  1. 特征间相互独立,对于非独立特征效果不好
  2. 需要做特征筛选
  3. 相对其他模型,准确率一般

应用层面

算法的使用场景或任务有哪些?

在做网页分类时采用这种贝叶斯算法,baseline准确率在75-80%之间,很难再网上提升,原因是类目体系间特征重合度很高,而且朴素贝叶斯假设太强,但实际往往特征间是有一定相关性的。所以采用朴素贝叶斯算法需要在特征工程层面做很大的功夫。

问题思考

  1. 朴素贝叶斯和贝叶斯估计有什么联系?
  2. 贝叶斯定理是什么?

参考文献

  1. 全概率公式和贝叶斯
  2. 贝叶斯定理
  3. 贝叶斯相关知识

评论加载中