朴素贝叶斯模型是一种生成式机器学习模型,其模型的数学原理是贝叶斯公式。本文假设读者已经有了概率论的知识。
贝叶斯公式如下:
P
(
Y
∣
X
)
=
P
(
X
Y
)
P
(
X
)
=
P
(
X
∣
Y
)
P
(
Y
)
P
(
X
)
(1)
\begin{aligned} P(Y|X)=\frac{P(XY)}{P(X)}=\frac{P(X|Y)P(Y)}{P(X)}\tag{1} \end{aligned}
P(Y∣X)=P(X)P(XY)=P(X)P(X∣Y)P(Y)(1)
贝叶斯公式反映了先验概率和后验概率之间的关系,即
P
(
X
∣
Y
)
P(X|Y)
P(X∣Y)和
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)的关系,我们以分类问题为基础赋予式
(
1
)
(1)
(1)现实意义,得到式
(
2
)
(2)
(2)
P
(
C
∣
X
)
=
P
(
X
∣
C
)
P
(
C
)
P
(
X
)
(2)
\begin{aligned} P(C|X)=\frac{P(X|C)P(C)}{P(X)}\tag{2} \end{aligned}
P(C∣X)=P(X)P(X∣C)P(C)(2)
其中X指的是特征向量,
X
=
(
x
1
,
x
2
,
.
.
.
,
x
n
)
X=(x_{1},x_{2},...,x_{n})
X=(x1,x2,...,xn)。
C
C
C是
X
X
X属于的具体类别。通过已有的数据集可以得到先验
P
(
X
∣
C
)
P(X|C)
P(X∣C)和类别总占比
P
(
C
)
P(C)
P(C),并且
P
(
X
)
=
1
P(X)=1
P(X)=1,即可计算出
P
(
C
∣
X
)
P(C|X)
P(C∣X)。式
(
2
)
(2)
(2)进一步变为:
P
(
C
∣
X
)
=
P
(
X
∣
C
)
P
(
C
)
(3)
\begin{aligned} P(C|X)=P(X|C)P(C)\tag{3} \end{aligned}
P(C∣X)=P(X∣C)P(C)(3)
代入特征向量
X
X
X的具体形式
P
(
C
∣
X
)
=
P
(
x
1
,
x
2
,
.
.
.
,
x
n
∣
C
)
P
(
C
)
(4)
\begin{aligned} P(C|X)=P(x_{1},x_{2},...,x_{n}|C)P(C)\tag{4} \end{aligned}
P(C∣X)=P(x1,x2,...,xn∣C)P(C)(4)
所以关键在于求
P
(
x
1
,
x
2
,
.
.
.
,
x
n
∣
C
)
P(x_{1},x_{2},...,x_{n}|C)
P(x1,x2,...,xn∣C),由条件概率公式得
P
(
x
1
,
x
2
,
.
.
.
,
x
n
∣
C
)
=
P
(
x
1
,
x
2
,
.
.
.
,
x
n
,
C
)
P
(
C
)
(5)
\begin{aligned} P(x_{1},x_{2},...,x_{n}|C)=\frac{P(x_{1},x_{2},...,x_{n},C)}{P(C)}\tag{5} \end{aligned}
P(x1,x2,...,xn∣C)=P(C)P(x1,x2,...,xn,C)(5)
式
(
5
)
(5)
(5)代入式
(
4
)
(4)
(4)得到:
P
(
C
∣
X
)
=
P
(
x
1
,
x
2
,
.
.
.
,
x
n
,
C
)
(6)
\begin{aligned} P(C|X)=P(x_{1},x_{2},...,x_{n},C)\tag{6} \end{aligned}
P(C∣X)=P(x1,x2,...,xn,C)(6)
即求一个多维联合概率分布,由联合概率的链式法则易知:
P
(
C
∣
X
)
=
P
(
x
1
∣
x
2
,
.
.
.
,
x
n
,
C
)
P
(
x
2
∣
x
3
.
.
.
x
n
,
C
)
.
.
.
P
(
x
n
∣
C
)
P
(
C
)
(7)
\begin{aligned} P(C|X)=P(x_{1}|x_{2},...,x_{n},C)P(x_{2}|x_{3}...x_{n},C)...P(x_{n}|C)P(C)\tag{7} \end{aligned}
P(C∣X)=P(x1∣x2,...,xn,C)P(x2∣x3...xn,C)...P(xn∣C)P(C)(7)
以上的每一个概率在现实问题中都不好求,因此有了贝叶斯分类器最重要的限制:假设给定的类别,所有的特征相互独立。
于是有:
P
(
C
∣
X
)
=
P
(
x
1
∣
C
)
P
(
x
2
∣
C
)
.
.
.
P
(
x
n
∣
C
)
P
(
C
)
=
P
(
C
)
∏
i
=
1
n
P
(
x
i
∣
C
)
(8)
\begin{aligned} P(C|X)=P(x_{1}|C)P(x_{2}|C)...P(x_{n}|C)P(C)=P(C)\prod_{i=1}^nP(x_{i}|C)\tag{8} \end{aligned}
P(C∣X)=P(x1∣C)P(x2∣C)...P(xn∣C)P(C)=P(C)i=1∏nP(xi∣C)(8)
最终得到朴素贝叶斯的数学模型如下:
a
r
g
m
a
x
K
P
(
C
K
∣
X
)
=
P
(
C
K
)
∏
i
=
1
n
P
(
x
i
∣
C
K
)
(9)
\begin{aligned} argmax_{K}P(C_{K}|X)=P(C_{K})\prod_{i=1}^nP(x_{i}|C_{K})\tag{9} \end{aligned}
argmaxKP(CK∣X)=P(CK)i=1∏nP(xi∣CK)(9)
朴素贝叶斯模型的训练过程简单,就是根据所给的数据建立一个先验概率表,对于一个新的特征只需要查表计算所有类别的后验概率大小,最大的概率值对应的那个类别即是新特征送入朴素贝叶斯分类器的分类结果。
朴素贝叶斯分类器有如下的几点注意事项:
①如果需要分类的事件特征中有新的特征分量,那么使用拉普拉斯平滑技术给对应条件概率的分子分母同时加上一个数,一般是1,称为拉普拉斯平滑系数,作用是避免先验概率连乘时出现
0
0
0。
②朴素贝叶斯模型分为:高斯模型(连续)、多项式模型(离散)和贝努利模型(二值),如果分类的特征中有离散和连续两种特征,有两种方法可以解决这个问题。第一种方法是连续特征离散化,将特征变为全部离散的形式,使用多项式模型。第二种方法是连续特征用高斯模型拟合、离散特征用多项式模型拟合,最后结合成为一个元模型。
③现实中的分类问题往往特征巨大,而
0
−
1
0-1
0−1之间的小数连乘会导致结果数值越来越小,有可能出现数值溢出,使得模型失效。模型两边取对数,连乘变连加即可解决这个问题。
朴素贝叶斯的数学原理,完全手推,一针见血
最新推荐文章于 2024-01-21 21:38:38 发布