以二分类问题为例,我们假设特征集合为xxx,样本所属类别为ccc,后验概率P(c∣x)P(c|x)P(c∣x)为:
P(c∣x)=P(c)P(x∣c)P(x)
P(c|x)=\frac{P(c)P(x|c)}{P(x)}
P(c∣x)=P(x)P(c)P(x∣c)
其中P(c)P(c)P(c)是类的先验概率;P(x∣c)P(x|c)P(x∣c)是样本xxx相对于类标记ccc的类条件概率;P(x)P(x)P(x)代表样本x出现的概率,但是给定样本x,P(x)P(x)P(x)与类标记无关。因此我们只需要计算先验概率P(c)P(c)P(c)和类条件概率P(x∣c)P(x|c)P(x∣c)。计算方法如下:
- P(c)P(c)P(c)表示样本空间中各类别样本所占的比例,根据大数定律,当训练集包含充分的独立同分布样本时,因此P(c)P(c)P(c)可以根据各类样本出现的频率来进行估计。
- P(x∣c)P(x|c)P(x∣c)设计到关于xxx所有属性的联合概率,如果直接根据样本出现的频率来估计会遇到极大的困难(比如假设样本的ddd个属性都是二值的,那么样本空间就有2d2^d2d种可能的取值,这个值往往远大于训练样本数,因此很多样本取值在训练中可能根本不会出现),因此我们直接用频率来估计P(x∣c)P(x|c)P(x∣c)是不可行的。
为解决这个问题,朴素贝叶斯提出了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。于是贝叶斯公式可以改写成:
P(c∣x)=P(c)P(x∣c)P(x)=P(c)P(x)∏i=1dP(xi∣c)
P(c|x)=\frac{P(c)P(x|c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_i|c)
P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
其中我们用样本频率估计P(c)P(c)P(c)和P(xi∣c)P(x_i|c)P(xi∣c):
P(c)=∣Dc∣∣D∣,P(xi∣c)=∣Dc,xi∣∣Dc∣
P(c)=\frac{|D_c|}{|D|},P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|}
P(c)=∣D∣∣Dc∣,P(xi∣c)=∣Dc∣∣Dc,xi∣
其中∣Dc∣|D_c|∣Dc∣表示类别为ccc的样本数,∣D∣|D|∣D∣表示训练集总样本数,∣Dc,xi∣|D_{c,x_i}|∣Dc,xi∣表示类别ccc样本中在第iii个特征值取值为xix_ixi的样本数。
求出所有类别的P(c∣x)P(c|x)P(c∣x)后取后验概率最大的类别ccc为最近预测类别。