一、前述
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对给定的输入 x x x,利用贝叶斯定理求出后验概率最大的输出 y y y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。
二、朴素贝叶斯法介绍
I.模型
朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。具体来说,利用训练数据学习 P ( X ∣ Y ) P(X|Y) P(X∣Y)和 P ( Y ) P(Y) P(Y)的估计,得到联合概率分布: P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y)其中概率估计方法可以是极大似然估计或贝叶斯估计(加上 λ \lambda λ正则项)。
朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
=
P
(
Y
)
P
(
X
∣
Y
)
∑
Y
P
(
Y
)
P
(
X
∣
Y
)
P(Y|X)=\frac{P(X,Y)} {P(X)}=\frac{P(Y)P(X|Y)}{ \sum_{Y}^{} P(Y)P(X|Y)}
P(Y∣X)=P(X)P(X,Y)=∑YP(Y)P(X∣Y)P(Y)P(X∣Y)
在一个很强的特征条件独立假设下,朴素贝叶斯分类器变成了
y
=
f
(
x
)
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
∑
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=f(x)=\arg \max_{c_k}^{}\frac{P(Y=c_k)\prod_{j}^{}P(X^{(j)}=x^{(j)}|Y=c_k)} {\sum_{k}^{}P(Y=c_k)\prod_{j}^{}P(X^{(j)}=x^{(j)}|Y=c_k)}
y=f(x)=argckmax∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)P(Y=ck)∏jP(X(j)=x(j)∣Y=ck)由于在同一个训练数据集下,上式分母相同,于是上式的朴素贝叶斯分类器变为:
y
=
f
(
x
)
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=f(x)=\arg \max_{c_k}^{}{P(Y=c_k)\prod_{j}^{}P(X^{(j)}=x^{(j)}|Y=c_k)}
y=f(x)=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
II.策略
朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化,假设选择0-1损失函数: L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))=\left\{\begin{matrix}1,Y \neq f(X) \\ 0,Y=f(X)\end{matrix}\right. L(Y,f(X))={1,Y=f(X)0,Y=f(X)于是,期望风险函数为: R e x p ( f ) = E [ L ( Y , f ( X ) ) ] R_{exp}(f)=E[L(Y,f(X))] Rexp(f)=E[L(Y,f(X))],又由于期望是对联合分布 P ( X , Y ) P(X,Y) P(X,Y)取的,所以有条件期望 R e x p ( f ) = E X ∑ k = 1 K [ L ( c k , f ( X ) ) ] P ( c k ∣ X ) R_{exp}(f)=E_X\sum_{k=1}^{K}[L(c_k,f(X))]P(c_k|X) Rexp(f)=EXk=1∑K[L(ck,f(X))]P(ck∣X),为了使期望风险最小化,对 X = x X=x X=x逐个极小化,由此得到: f ( x ) = arg min y ∈ γ ∑ k = 1 K L ( c k , y ) P ( c k ∣ X = x ) = arg min y ∈ γ ∑ k = 1 K P ( y ≠ c k ∣ X = x ) = arg min y ∈ γ ∑ k = 1 K ( 1 − P ( y = c k ∣ X = x ) ) = arg max y ∈ γ ∑ k = 1 K P ( y = c k ∣ X = x ) f(x) = \arg\min_{y\in\gamma}^{}\sum_{k=1}^{K}L(c_k,y)P(c_k|X=x)\\ = \arg\min_{y\in\gamma}^{}\sum_{k=1}^{K}P(y\neq c_k|X=x)\\ = \arg\min_{y\in\gamma}^{}\sum_{k=1}^{K}(1-P(y= c_k|X=x))\\ = \arg\max_{y\in\gamma}^{}\sum_{k=1}^{K}P(y= c_k|X=x) f(x)=argy∈γmink=1∑KL(ck,y)P(ck∣X=x)=argy∈γmink=1∑KP(y=ck∣X=x)=argy∈γmink=1∑K(1−P(y=ck∣X=x))=argy∈γmaxk=1∑KP(y=ck∣X=x)于是,期望分线最小化准则就等价于后仰概率最大化准则: f ( x ) = arg max c k P ( c k ∣ X = x ) f(x)=\arg\max_{c_k}^{}P(c_k|X=x) f(x)=argckmaxP(ck∣X=x)
III.算法
a.极大似然估计
极大似然估计,可以直观理解为基于当前训练数据集对先验概率
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
P(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N},k=1,2,\cdots,K
P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,⋯,K
以及条件概率
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
)
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)}
P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck)其中
j
=
1
,
2
,
⋯
,
n
;
l
=
1
,
2
,
⋯
,
S
j
;
k
=
1
,
2
,
⋯
,
K
;
j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K;
j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K;第
j
j
j个特征
x
(
j
)
x^{(j)}
x(j)可能取值的集合为
{
a
j
1
,
a
j
2
,
⋯
,
a
j
S
j
}
\left \{ a_{j1},a_{j2},\cdots,a_{jS_j} \right \}
{aj1,aj2,⋯,ajSj}
b.贝叶斯估计
极大似然估计可能会产生过拟合的问题,由于实际样本集中可能存在某个输入输出概率为0的情况。解决这一问题的方法是采用贝叶斯估计。具体地,条件概率的贝叶斯估计是:
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
)
+
S
j
λ
P_\lambda(X^{(j)}=a_{jl}|Y=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}
Pλ(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(xi(j)=ajl,yi=ck)+λ
其中,
λ
⩾
0
\lambda\geqslant0
λ⩾0,当
λ
=
1
\lambda=1
λ=1时,称为拉普拉斯平滑;同样,先验概率的贝叶斯估计是:
P
λ
(
Y
=
c
k
)
=
∑
i
=
1
N
I
(
y
i
=
c
k
)
+
λ
N
+
K
λ
P_\lambda(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)+\lambda}{N+K\lambda}
Pλ(Y=ck)=N+Kλ∑i=1NI(yi=ck)+λ
三、总结
朴素贝叶斯法属于比较强条件下的一个生成模型,通过极大似然估计或贝叶斯估计,在特征条件独立的假设下,运用概率论中贝叶斯定理对新的输入进行预测。