
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法
贝叶斯定理中的条件概率分布
P
(
X
=
x
∣
Y
=
c
k
)
=
P
(
X
(
1
)
=
x
(
1
)
,
.
.
.
,
X
(
n
)
=
x
(
n
)
∣
Y
=
c
k
)
,
k
=
1
,
2
,
.
.
.
K
P(X=x|Y=c_k)=\P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k),k=1,2,...K
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck),k=1,2,...K
有指数级数量的参数,其估计实际是不可行的
因此朴素贝叶斯对条件概率分布作了条件独立性的假设:
P
(
X
=
x
∣
Y
=
c
k
)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
P(X=x|Y=c_k)=prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)
P(X=x∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的.这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率.
朴素贝叶斯法分类时,对给定的输入 x,通过学习到的模型计算后验概率分布
P
(
Y
=
c
k
∣
X
=
x
)
P(Y=c_k|X=x)
P(Y=ck∣X=x) ,将后验概率最大的类作为 x 的类输出:
y
=
f
(
x
)
=
a
r
g
m
a
x
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;underset {c_k}{max};frac{P(Y=c_k)prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}{sum_kP(Y=c_k)prod_jP(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)
因为分母表示的是输入 x 发生的概率,是不变的,因此分类器可以简化为:
y
=
f
(
x
)
=
a
r
g
m
a
x
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=f(x)=arg;underset {c_k}{max};{P(Y=c_k)prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}
y=f(x)=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
在朴素贝叶斯法中,学习意味着估计 P ( Y = c k ) P(Y=c_k) P(Y=ck) 和 P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X^{(j)}=x^{(j)}|Y=c_k) P(X(j)=x(j)∣Y=ck)
可以应用极大似然估计法估计相应的概率
对于先验概率
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^N_{i=1}I(y_i=c_k)}{N},k=1,2,...,K
P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,...,K
设第 j 个特征可能取值的集合为
{
a
j
1
,
a
j
2
,
…
,
a
j
S
j
}
{a_{j1},a_{j2},…,a_{jS_j}}
{aj1,aj2,…,ajSj} ,
对于条件概率
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
P(X^{(j)}=x^{(j)}|Y=c_k)
P(X(j)=x(j)∣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
P(X^{(j)}=a_{jl}|Y=c_k)=frac{sum^N_{i=1}I(x_i^{(j)}=a_{jl},y_i=c_k)}{sum^N_{i=1}I(y_i=c_k)}\j=1,2,...,n;l=1,2,...,S_j;k=1,2,...,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,...,Sj;k=1,2,...,K
下面给出朴素贝叶斯法的学习与分类算法
用极大似然估计可能会出现所要估计的概率值为 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_λ(X^{(j)}=a_{jl}|Y=c_k)=frac{sum^N_{i=1}I(x_i^{(j)}=a_{jl},y_i=c_k)+lambda}{sum^N_{i=1}I(y_i=c_k)+S_jlambda}
Pλ(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(xi(j)=ajl,yi=ck)+λ
式中 λ ≥ 0 .等价于在随机变量各个取值的频数上赋予一个正数.当 λ=0 时就是极大似然估计.常取 λ=1,这时称为拉普拉斯平滑(Laplace smoothing).
同样, 先验概率的贝叶斯估计是
P
(
Y
=
c
k
)
=
∑
i
=
1
N
I
(
y
i
=
c
k
)
+
λ
N
+
K
λ
P(Y=c_k)=frac{sum^N_{i=1}I(y_i=c_k)+λ}{N+Kλ}
P(Y=ck)=N+Kλ∑i=1NI(yi=ck)+λ