1. 概念回顾
1.1 条件概率公式
条件概率是指在事件B发生的条件下,事件A发生的概率。条件概率表示为 P ( A ∣ B ) P(A|B) P(A∣B),读作“A在B发生的条件下发生的概率”。若只有两个事件A、B,那么有:
P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(A∣B)=P(B)P(AB)
1.2 全概率公式
若事件 B 1 , B 2 , . . . , B n B_1,B_2,...,B_n B1,B2,...,Bn构成一个完备事件组且都有正概率,则对任意一个事件A都有:
P ( A ) = ∑ i = 1 n P ( B i ) P ( A ∣ B i ) P(A)=\sum_{i=1}^{n}P(B_i)P(A|B_i) P(A)=i=1∑nP(Bi)P(A∣Bi)
1.3 贝叶斯定理
贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。
P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) P ( A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 n P ( B j ) P ( A ∣ B j ) \begin{aligned} P(B_i|A)&=\frac{P(B_i)P(A|B_i)}{P(A)} &=\frac{P(B_i)P(A|B_i)}{\sum_{j=1}^{n} P(B_j)P(A|B_j)} \end{aligned} P(Bi∣A)=P(A)P(Bi)P(A∣Bi)=∑j=1nP(Bj)P(A∣Bj)P(Bi)P(A∣Bi)
贝叶斯定理建立了 P ( A ∣ B ) P(A|B) P(A∣B)和 P ( B ∣ A ) P(B|A) P(B∣A)之间的联系,结合条件概率公式,具体推导过程为:
P ( A ∣ B ) = P ( A B ) P ( B ) ⇒ P ( A B ) = P ( A ∣ B ) P ( B ) P ( B ∣ A ) = P ( A B ) P ( A ) = P ( A ∣ B ) P ( B ) P ( A ) P(A|B)=\frac{P(AB)}{P(B)} \Rightarrow P(AB)=P(A|B)P(B) \\ P(B|A)=\frac{P(AB)}{P(A)}=\frac{P(A|B)P(B)}{P(A)} P(A∣B)=P(B)P(AB)⇒P(AB)=P(A∣B)P(B)P(B∣A)=P(A)P(AB)=P(A)P(A∣B)P(B)
2. 朴素贝叶斯(Naive Bayes)
2.1 定义
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法,其名称中的“朴素”就体现在“特征条件独立(所有特征变量相互独立)”这一假设中。朴素贝叶斯法的基本假设是条件独立性。
基本步骤:
- 对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;
- 然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
参考博文[2]中给出了贝叶斯原理(贝叶斯定理)、贝叶斯分类和朴素贝叶斯之间的直观解释图示:
2.2 基本方法(公式推导)
首先定义:
- 输入空间为 I ⊆ R n I \subseteq R^n I⊆Rn为n维向量的集合,输出空间为类标签集合 C = c 1 , c 2 , . . . , c K C={c_1,c_2,...,c_K} C=c1,c2,...,cK;
- 输入为特征向量 x ∈ I x\in I x∈I,输出为类标签(class label,代表所属类别) y ∈ C y\in C y∈C;
- X X X是定义在输入空间 I I I上的随机向量, Y Y Y是定义在空间 C C C上的随机变量;
- P ( X , Y ) P(X,Y) P(X,Y)是 X X X和 Y Y Y的联合概率分布;
- 训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)} T=(x1,y1),(x2,y2),...,(xN,yN)由 P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生。
则,朴素贝叶斯法通过训练数据集 T T T学习得到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)。具体来说,就是利用训练数据学习得到先验概率 P ( Y ) P(Y) P(Y)及条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)的估计,然后求得联合概率分布。先验概率和条件概率的估计方法可以是极大似然估计或贝叶斯估计等方法,具体在下一节中介绍。
先验概率分布为:
P ( Y = c k ) , k = 1 , 2 , . . . , K (1) P(Y=c_k),\text{ }k=1,2,...,K \tag{1} P(Y=ck), k=1,2,...,K(1)
条件概率分布为:
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( n ) = x ( n ) ∣ Y = c k ) , k = 1 , 2 , . . . , K (2) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k), \text{ } k=1,2,...,K \tag{2} P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck), k=1,2,...,K(2)
由(1)和(2)结合条件概率公式,可以计算得到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)。
条件独立性假设是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。
根据条件独立性的假设,有:
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( n ) = x ( n ) ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (3) \begin{aligned} P(X=x|Y=c_k)&=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}) \\ &=\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned} \tag{3} P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n))=j=1∏nP(X(j)=x(j)∣Y=ck)(3)
根据贝叶斯定理并结合公式(3)可计算后验概率为:
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) = P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (4) \begin{aligned} P(Y=c_k|X=x)&=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)} \\ &=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{k}P(X=x|Y=c_k)P(Y=c_k)} \\ &=\frac{P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)} \end{aligned} \tag{4} P(Y=ck∣X=x)=P(X=x)P(X=x∣Y=ck)P(Y=ck)=∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)=∑kP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)(4)
这是朴素贝叶斯法的基本公式。那么,朴素贝叶斯分类器就是在类标签集合 C C C中找到 c k c_k ck使其满足下式:
y = f ( x ) = a r g m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (5) y=f(x)=argmax_{c_k} \frac{P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)} \tag{5} y=f(x)=argmaxck∑kP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)(5)
上式中分母对所有 c k c_k ck相同,因此可以简化为:
y = a r g m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (7) y=argmax_{c_k}P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k) \tag{7} y=argmaxckP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)(7)
2.3 朴素贝叶斯法的参数估计
这里是前一个章节(2.2)部分的扩展,通过概率估计方法求得先验概率和条件概率,进而求取联合概率。
2.3.1 极大似然估计
(1)公式推导
先验概率
P
(
Y
=
c
k
)
P(Y=c_k)
P(Y=ck)的极大似然估计是:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , . . . , K (8) P(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N} \text{ } ,k=1,2,...,K \tag{8} P(Y=ck)=N∑i=1NI(yi=ck) ,k=1,2,...,K(8)
即为类标签 c k c_k ck出现的频率。
设第j个特征 x ( j ) x^{(j)} x(j)可能取值的集合为 { a j 1 , a j 2 , . . . , a j S j } \{a_{j1},a_{j2},...,a_{jS_j}\} {aj1,aj2,...,ajSj},则根据条件概率公式,条件概率 P ( X ( j ) = a j l ∣ Y = c k ) P(X^{(j)}=a_{jl}|Y=c_k) P(X(j)=ajl∣Y=ck)的极大似然估计为:
P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . , K (9) P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)} \\ j=1,2,...,n; l=1,2,...,S_j; k=1,2,...,K \tag{9} P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K(9)
(2)参考示例
(书中例题4.1)试由表中的训练数据学习一个朴素贝叶斯分类器并确定
x
=
(
2
,
S
)
T
x=(2,S)^T
x=(2,S)T的类标签
y
y
y。表中
X
(
1
)
X^{(1)}
X(1)、
X
(
2
)
X^{(2)}
X(2)为特征,取值的集合为
A
1
=
{
1
,
2
,
3
}
A_1=\{1,2,3\}
A1={1,2,3},
A
2
=
{
S
,
M
,
L
}
A_2=\{S,M,L\}
A2={S,M,L},
Y
Y
Y为类标签,
Y
∈
C
=
{
1
,
−
1
}
Y\in C=\{1,-1\}
Y∈C={1,−1}。
2.3.2 贝叶斯估计&拉普拉斯平滑
(1)公式推导
极大似然估计可能会出现所要估计的概率值为0的情况,这会影响结果,解决这个问题可以采用贝叶斯估计。
为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑(Laplace smoothing)。假定训练样本很大时,每个分量的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。在实际的使用中也经常使用加 λ \lambda λ来代替简单加1。如果对N个计数都加上 λ \lambda λ,这时分母也要记得加上 N ∗ λ N * \lambda N∗λ。
条件概率的贝叶斯估计是:
P ( X ( j ) = a j l , y i = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ (10) P(X^{(j)}=a_{jl},y_i=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^{N}I(y_i=c_k)+S_j\lambda} \tag{10} P(X(j)=ajl,yi=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(xi(j)=ajl,yi=ck)+λ(10)
在上式中, λ ≥ 0 \lambda \geq 0 λ≥0。且当 λ = 0 \lambda=0 λ=0就是极大似然估计,当 λ = 1 \lambda=1 λ=1时就是拉普拉斯平滑。
先验概率的贝叶斯估计为:
P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ (11) P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)+\lambda}{N+K\lambda} \tag{11} Pλ(Y=ck)=N+Kλ∑i=1NI(yi=ck)+λ(11)
(2)参考示例
(书中例题4.2)问题同例4.1,按照拉普拉斯平滑估计概率,即取
λ
=
1
\lambda=1
λ=1。
参考
[1] 《统计学习方法》第四章. 李航
[2] https://blog.csdn.net/qiu_zhi_liao/article/details/90671932
[3] https://www.cnblogs.com/bqtang/p/3693827.html