朴素贝叶斯模型
1. 术语解释
1.1 先验概率与后验概率
先验概率是试验前根据以往积累的资料和经验,对事件发生可能性的一个(绝对)判断。
后验概率是在试验后,根据由试验获得的信息对事件发生的可能性作重新审视和修正的概率。
【例1】设在一个盒子中混有新旧两种球共100个。新球共61个,其中有59个白球和2个红球;旧球共39个,其中有1个白球和38个红球。现从盒中任取一球,令事件A=“取得白球”,事件B=“取得新球”。则事件 B ˉ \bar{B} Bˉ=“取得旧球”。
先验概率:设在试验前(即取球前),我们已知盒中各类球的数目。因此我们可以求得“取得新球”的概率为 P ( B ) = 61 100 P(B) = \frac{61}{100} P(B)=10061,“取得旧球”的概率为 P ( B ˉ ) = 39 100 P(\bar{B}) = \frac{39}{100} P(Bˉ)=10039。
后验概率:当我们从盒中任取一球后,设想我们已经从手指缝窥见这个球是白球。此时我们会重新估计事件 B B B和 B ˉ \bar{B} Bˉ发生的概率: P ( B ∣ A ) = 59 59 + 1 = 59 60 P(B|A) = \frac{59}{59+1} = \frac{59}{60} P(B∣A)=59+159=6059, P ( B ˉ ∣ A ) = 1 59 + 1 = 1 60 P(\bar{B}|A) = \frac{1}{59+1} = \frac{1}{60} P(Bˉ∣A)=59+11=601。
1.2 类先验概率
假设样本空间中有若干个样本,同时存在 N N N种可能的类别标记将样本分为 N N N类。则类先验概率表达了样本空间中各类样本所占的比例。根据大数定律,当训练集包含充足的独立同分布样本时,类先验概率可通过各类样本出现的频率来进行估计。
2. 贝叶斯定理
2.1 全概率公式
令
B
1
,
⋯
,
B
n
B_1,\cdots,B_n
B1,⋯,Bn满足
⋃
i
=
1
n
B
i
=
Ω
\bigcup\limits_{i=1}^nB_i=\Omega
i=1⋃nBi=Ω,
B
i
∩
B
j
=
ϕ
B_i \cap B_j = \phi
Bi∩Bj=ϕ,
i
≠
j
i \neq j
i=j,且对所有的
i
i
i,
P
(
B
i
)
>
0
P(B_i)>0
P(Bi)>0。那么,对于任意的
A
A
A,有
P
(
A
)
=
∑
i
=
1
n
P
(
A
∣
B
i
)
P
(
B
i
)
(1)
P(A) = \sum_{i=1}^{n}P(A|B_i)P(B_i) \tag{1}
P(A)=i=1∑nP(A∣Bi)P(Bi)(1)
2.2 贝叶斯公式
令
A
A
A和
B
1
,
⋯
,
B
n
B_1,\cdots,B_n
B1,⋯,Bn是事件,其中
B
i
B_i
Bi互不相交,
⋃
i
=
1
n
B
i
=
Ω
\bigcup\limits_{i=1}^nB_i=\Omega
i=1⋃nBi=Ω,且对所有的
i
i
i,
P
(
B
i
)
>
0
P(B_i) > 0
P(Bi)>0,那么
P
(
B
j
∣
A
)
=
P
(
A
∣
B
j
)
P
(
B
j
)
∑
i
=
1
n
P
(
A
∣
B
i
)
P
(
B
i
)
=
P
(
A
∣
B
j
)
P
(
B
j
)
P
(
A
)
(2)
\begin{aligned} P(B_j|A)&=\frac{P(A|B_j)P(B_j)}{\sum\limits_{i=1}^{n}P(A|B_i)P(B_i)} \\ &= \frac{P(A|B_j)P(B_j)}{P(A)} \end{aligned}\tag{2}
P(Bj∣A)=i=1∑nP(A∣Bi)P(Bi)P(A∣Bj)P(Bj)=P(A)P(A∣Bj)P(Bj)(2)
3. 最大似然估计
3.1 参数估计
3.2 基本思想
若一实验有 n n n个可能结果 A 1 , ⋯ , A n A_1,\cdots,A_n A1,⋯,An,现做一实验,若事件 A i A_i Ai发生了,则认为事件 A i A_i Ai在这 n n n个可能结果中出现的概率最大。即极大似然原理认为:只一次实验就出现的事件(应该)有较大的概率。
【例2】如例1所述,当我们从盒子中取出一个白球时,求问这个白球是新球还是旧球?我们的第一反应是:这个球最可能是新球(因为60个白球中有59个是新的)。类似地,“最像”、“最可能”等即为“最大似然”之意。
总而言之,最大似然估计的思路为:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
3.3 似然性与似然函数
假设随机变量
X
1
,
⋯
.
X
n
X_1,\cdots.X_n
X1,⋯.Xn具有联合密度或频率函数
f
(
x
1
,
⋯
,
x
n
∣
θ
)
f(x_1,\cdots,x_n|\theta)
f(x1,⋯,xn∣θ),给定观测值
X
i
=
x
i
X_i = x_i
Xi=xi,其中
i
=
1
,
⋯
,
n
i = 1,\cdots,n
i=1,⋯,n,作为
x
1
,
⋯
,
x
n
x_1,\cdots,x_n
x1,⋯,xn的函数,
θ
\theta
θ 的似然定义为
l
i
k
(
θ
)
=
f
(
x
1
,
⋯
,
x
n
∣
θ
)
(3)
lik(\theta) = f(x_1,\cdots,x_n|\theta) \tag{3}
lik(θ)=f(x1,⋯,xn∣θ)(3)
3.4 求最大似然估计的一般步骤
- 构造似然函数
- 对似然函数取对数得对数似然函数(适用于当似然函数中有指数项、连乘等)
- 在似然函数(或对数似然函数)中,对参数求导数(若有多个参数,则对各参数求偏导数)
- 另参数的导数等于零(或各参数的偏导均等于零),得方程(组),求解即可得参数的最大似然估计。
【例3】如果
X
1
,
⋯
,
X
n
X_1,\cdots,X_n
X1,⋯,Xn独立同分布于
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2),那么联合密度是边际密度的乘积:
f
(
x
1
,
⋯
,
x
n
∣
μ
,
σ
)
=
∏
i
=
1
n
1
σ
2
π
e
x
p
(
−
1
2
[
x
i
−
μ
σ
]
2
)
(4)
f(x_1,\cdots,x_n|\mu,\sigma) = \prod_{i=1}^{n}\frac{1}{\sigma\sqrt{2\pi}}exp\left(-\frac{1}{2}\left[\frac{x_i-\mu}{\sigma}\right]^2\right) \tag{4}
f(x1,⋯,xn∣μ,σ)=i=1∏nσ2π1exp(−21[σxi−μ]2)(4)
将其视为
μ
\mu
μ和
σ
\sigma
σ的函数,这是似然函数。因此,对数似然是
l
(
μ
,
σ
)
=
l
o
g
f
(
x
1
,
⋯
,
x
n
∣
μ
,
σ
)
−
l
o
g
(
∏
i
=
1
n
1
σ
2
π
e
x
p
(
−
1
2
[
x
i
−
μ
σ
]
2
)
)
=
l
o
g
(
(
1
σ
2
π
)
n
∏
i
=
1
n
e
x
p
(
−
1
2
[
x
i
−
μ
σ
]
2
)
)
=
l
o
g
(
1
σ
2
π
)
n
+
l
o
g
∏
i
=
1
n
e
x
p
(
−
1
2
[
x
i
−
μ
σ
]
2
)
=
−
n
l
o
g
(
σ
2
π
)
+
∑
i
=
1
n
(
−
1
2
[
x
i
−
μ
σ
]
2
)
=
−
n
l
o
g
σ
−
n
2
l
o
g
2
π
−
1
2
σ
2
∑
i
=
1
n
(
x
i
−
μ
)
2
(5)
\begin{aligned} l(\mu,\sigma) &= logf(x_1,\cdots,x_n|\mu,\sigma) \\ &- log\left(\prod_{i=1}^{n}\frac{1}{\sigma\sqrt{2\pi}}exp\left(-\frac{1}{2}\left[\frac{x_i-\mu}{\sigma}\right]^2\right)\right) \\ &= log\left(\left(\frac{1}{\sigma\sqrt{2\pi}}\right)^n\prod_{i=1}^{n}exp\left(-\frac{1}{2}\left[\frac{x_i-\mu}{\sigma}\right]^2\right)\right) \\ &= log\left(\frac{1}{\sigma\sqrt{2\pi}}\right)^n + log\prod_{i=1}^{n}exp\left(-\frac{1}{2}\left[\frac{x_i-\mu}{\sigma}\right]^2\right) \\ &= -nlog\left(\sigma\sqrt{2\pi}\right) + \sum_{i=1}^{n}\left(-\frac{1}{2}\left[\frac{x_i-\mu}{\sigma}\right]^2\right) \\ &= -nlog\sigma - \frac{n}{2}log2\pi - \frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i-\mu)^2 \end{aligned} \tag{5}
l(μ,σ)=logf(x1,⋯,xn∣μ,σ)−log(i=1∏nσ2π1exp(−21[σxi−μ]2))=log((σ2π1)ni=1∏nexp(−21[σxi−μ]2))=log(σ2π1)n+logi=1∏nexp(−21[σxi−μ]2)=−nlog(σ2π)+i=1∑n(−21[σxi−μ]2)=−nlogσ−2nlog2π−2σ21i=1∑n(xi−μ)2(5)
在上述对数似然函数中,分别对
μ
\mu
μ和
σ
\sigma
σ求偏导,可得:
∂
l
(
μ
,
σ
)
∂
μ
=
1
σ
2
∑
i
=
1
n
(
x
i
−
μ
)
∂
l
(
μ
,
σ
)
∂
σ
=
−
n
σ
+
1
σ
3
∑
i
=
1
n
(
x
i
−
μ
)
2
(6)
\begin{aligned} \frac{\partial{l(\mu,\sigma)}}{\partial{\mu}} &= \frac{1}{\sigma^2}\sum_{i=1}^{n}(x_i-\mu) \\ \frac{\partial{l(\mu,\sigma)}}{\partial{\sigma}} &= -\frac{n}{\sigma}+\frac{1}{\sigma^3}\sum_{i=1}^{n}(x_i-\mu)^2 \end{aligned} \tag{6}
∂μ∂l(μ,σ)∂σ∂l(μ,σ)=σ21i=1∑n(xi−μ)=−σn+σ31i=1∑n(xi−μ)2(6)
另上述两式为零,可分别得到参数
μ
\mu
μ和
σ
\sigma
σ的最大似然估计:
μ
=
1
n
∑
i
=
1
n
x
i
=
x
ˉ
σ
=
1
n
∑
i
=
1
n
(
x
i
−
x
ˉ
)
2
(7)
\begin{aligned} \mu &= \frac{1}{n}\sum_{i=1}^{n}x_i = \bar{x}\\ \sigma &= \sqrt{\frac{1}{n}\sum_{i=1}^{n}\left(x_i-\bar{x}\right)^2} \end{aligned} \tag{7}
μσ=n1i=1∑nxi=xˉ=n1i=1∑n(xi−xˉ)2(7)
4. 贝叶斯决策论
贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
考虑一个多分类任务,假设 x \mathbf{x} x为待分类样本,对样本共有 N N N种可能的类别标记,即 Y = { c 1 , ⋯ , c n } \mathcal{Y} = \{c_1,\cdots,c_n\} Y={c1,⋯,cn}
4. 朴素贝叶斯分类器
4.1 朴素贝叶斯假设
朴素贝叶斯假设(Naive Bayes assumption),也有人称作属性条件独立性假设(attribute conditional independence assumption):对于已知类别,假设所有属性相互独立,即每个属性独立地对分类结果产生影响。
【例4】考虑一个文本分类问题,我们希望将邮件分为垃圾邮件和非垃圾邮件。假设我们已经有了一个训练集(一组被标记为垃圾邮件或非垃圾邮件的邮件),所有出现在训练集邮件中的单词可以构成一个字典。
现在我们将通过一个长度为字典中单词数量的特征向量来表示邮件,特别地,特征向量的第 i i i个元素对应于字典中的第 i i i个单词,对于一封特定的邮件,如果这封邮件包含了字典中的第 j j j个单词,那么 x j = 1 x_j=1 xj=1;反之,如果这封邮件中不包含字典中的第 j j j个单词,则 x j = 0 x_j=0 xj=0。
若字典中有50000个单词,即 x ∈ R 50000 x \in \mathbb{R}^{50000} x∈R50000。假设 y = 1 y=1 y=1表示一封邮件为垃圾邮件,“buy”是这封邮件的特征向量中的第2087个单词,“price”是这封邮件的特征向量中的第39831个单词。朴素贝叶斯假设告诉我们,如果我告诉你一封邮件是垃圾邮件(即 y = 1 y=1 y=1),我们对于 x 2087 x_{2087} x2087的认知对于我们对于 x 39831 x_{39831} x39831的值的预测是没有影响的,即我们知道的关于单词“buy”是否出现在了邮件里不会影响我们对于单词“price”是否出现在邮件中的判断。写成数学表达式就是 p ( x 2087 ∣ y ) = p ( x 2087 ∣ y , x 39831 ) p(x_{2087}|y)=p(x_{2087}|y,x_{39831}) p(x2087∣y)=p(x2087∣y,x39831)。
注意:这不等同于“ x 2087 x_{2087} x2087与 x 39831 x_{39831} x39831相互独立”的说法!这个说法写成数学表达式为 p ( x 2087 ) = p ( x 2087 ∣ x 39831 ) p(x_{2087})=p(x_{2087}|x_{39831}) p(x2087)=p(x2087∣x39831)。我们这里假设的是对于给定的 y y y, x 2087 x_{2087} x2087与 x 39831 x_{39831} x39831是条件独立的( x 2087 x_{2087} x2087 and x 39831 x_{39831} x39831 are conditionally independent given y y y)!
朴素贝叶斯假设是一个非常强的假设(即这个假设在现实应用中很难成立),然而朴素贝叶斯分类器在很多情形下都能有很不错的表现。
4.2 朴素贝叶斯分类器的表达式
考虑一个多分类任务,假设 x \mathbf{x} x为待分类样本,对样本共有 N N N种可能的类别标记,即 Y = { c 1 , ⋯ , c n } \mathcal{Y} = \{c_1,\cdots,c_n\} Y={c1,⋯,cn}
之前所学的决策树、BP神经网络、SVM等都是在给定 x \mathbf{x} x下直接对 P ( c ∣ x ) P(c|\mathbf{x}) P(c∣x)建模来预测 c c c,这样的算法被称为“判别式模型(Discriminative models)”。而朴素贝叶斯分类器是典型的“生成模型(Generative models)”。对于生成模型,我们先对联合概率分布 P ( x , c ) P(\mathbf{x},c) P(x,c)建模,然后再由此获得 P ( c ∣ x ) P(c|\mathbf{x}) P(c∣x)。
考虑
P
(
c
∣
x
)
=
P
(
x
,
c
)
P
(
x
)
P(c|\mathbf{x}) = \frac{P(\mathbf{x},c)}{P(\mathbf{x})}
P(c∣x)=P(x)P(x,c)。基于贝叶斯定理,
P
(
x
∣
c
)
P(\mathbf{x}|c)
P(x∣c)可以写为
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
P(c|\mathbf{x}) = \frac{P(c)P(\mathbf{x}|c)}{P(\mathbf{x})}
P(c∣x)=P(x)P(c)P(x∣c)
- P ( c ) P(c) P(c):样本属于第 c c c类的概率(先验概率)
- P ( x ) P(\mathbf{x}) P(x):条件(或约束/属性)出现的概率(先验概率)
- P ( c ∣ x ) P(c|\mathbf{x}) P(c∣x):在条件 x \mathbf{x} x发生的情况下,样本属于第 c c c类的概率(后验概率)
- P ( x ∣ c ) P(\mathbf{x}|c) P(x∣c):当样本属于第c类时,条件 x \mathbf{x} x出现的概率(后验概率)
5. 拉普拉斯平滑
6. 实现
7. 练习
- 试使用极大似然法估算西瓜数据集3.0中前3个属性的类条件概率。
- 试证明:条件独立性假设不成立时,朴素贝叶斯分类器仍有可能产生最优贝叶斯分类器。
- 试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3.0为训练集,对p.151“测1”样本进行判别。
8. 参考资料
[1] 吴志远, & 张振强. (2004). 由先验概率和后验概率谈信息的价值. 南宁师范高等专科学校学报, 21(3), 70-72.
[2] Rice, J. (2007). Mathematical statistics and data analysis (3rd ed., international student ed., Duxbury advanced series). Belmont, CA: Thomson/Brooks/Cole.
[3] Russell, S., & Norvig, P. (2016). Artificial intelligence : A modern approach (3rd ed., Prentice Hall series in artificial intelligence). Boston: Pearson.
[4] 周志华. (2016). 机器学习. 北京: 清华大学出版社.
[5] Andrew Ng. CS229 Lecture notes. Stanford University