宏观层面
从宏观层面看,朴素贝叶斯(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}$
贝叶斯估计
在估计条件概率分布$P(x_i|y=c_k)$的过程中,可能会出现$y=c_k$次数为零的情况,这是因为数据集里数据太少的原因,而真实情况$c_k$的样本个数并不为0,因此需要采用其他方法进行处理。
假第$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}$,为等可能的。
- 采用贝叶斯估计后,类别的先验概率分布调整为其中,当$\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$求最小值
因此后验概率最大化就等价于期望风险最小化。
优缺点是什么?
优点:
- 算法简单、直观、可以快速获得baseline效果
- 可以进行增量学习
缺点:
- 特征间相互独立,对于非独立特征效果不好
- 需要做特征筛选
- 相对其他模型,准确率一般
应用层面
算法的使用场景或任务有哪些?
在做网页分类时采用这种贝叶斯算法,baseline准确率在75-80%之间,很难再网上提升,原因是类目体系间特征重合度很高,而且朴素贝叶斯假设太强,但实际往往特征间是有一定相关性的。所以采用朴素贝叶斯算法需要在特征工程层面做很大的功夫。
问题思考
- 朴素贝叶斯和贝叶斯估计有什么联系?
- 贝叶斯定理是什么?
评论加载中