以二分类问题为例,我们假设特征集合为 x x x,样本所属类别为 c c c,后验概率 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)是样本
x
x
x相对于类标记
c
c
c的类条件概率;
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)设计到关于
x
x
x所有属性的联合概率,如果直接根据样本出现的频率来估计会遇到极大的困难(比如假设样本的
d
d
d个属性都是二值的,那么样本空间就有
2
d
2^d
2d种可能的取值,这个值往往远大于训练样本数,因此很多样本取值在训练中可能根本不会出现),因此我们直接用频率来估计
P
(
x
∣
c
)
P(x|c)
P(x∣c)是不可行的。
为解决这个问题,朴素贝叶斯提出了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。于是贝叶斯公式可以改写成:
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
=
P
(
c
)
P
(
x
)
∏
i
=
1
d
P
(
x
i
∣
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
(
x
i
∣
c
)
P(x_i|c)
P(xi∣c):
P
(
c
)
=
∣
D
c
∣
∣
D
∣
,
P
(
x
i
∣
c
)
=
∣
D
c
,
x
i
∣
∣
D
c
∣
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∣
其中
∣
D
c
∣
|D_c|
∣Dc∣表示类别为
c
c
c的样本数,
∣
D
∣
|D|
∣D∣表示训练集总样本数,
∣
D
c
,
x
i
∣
|D_{c,x_i}|
∣Dc,xi∣表示类别
c
c
c样本中在第
i
i
i个特征值取值为
x
i
x_i
xi的样本数。
求出所有类别的
P
(
c
∣
x
)
P(c|x)
P(c∣x)后取后验概率最大的类别
c
c
c为最近预测类别。