定义
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法,属于生成模型。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入 x x x,利用贝叶斯定理求出后验概率最大的输出 y y y。朴素贝叶斯法之所以叫作“朴素”,是由于它采用了条件独立性的假设,即假设用于分类的特征在类确定的条件下都是独立的。
设输入空间
X
⊆
R
n
\mathcal X\subseteq \bf R^n
X⊆Rn 为
n
n
n 维向量的集合,输出空间为类标记集合
Y
=
{
c
1
,
c
2
,
.
.
.
,
c
K
}
\mathcal Y=\{c_1,c_2,...,c_K\}
Y={c1,c2,...,cK}。输入为特征向量
x
∈
X
x\in \mathcal X
x∈X,输出为类标记
y
∈
Y
y\in\mathcal Y
y∈Y。
X
X
X 是定义在输入空间
X
\mathcal X
X 上的随机向量,
Y
Y
Y 是定义在输出空间
Y
\mathcal Y
Y 上的随机变量。
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) 独立同分布产生。
朴素贝叶斯法通过训练数据集学习联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)。具体地,学习以下先验概率分布及条件概率分布。先验概率分布
P
(
Y
=
c
k
)
,
      
k
=
1
,
2
,
.
.
.
,
K
P(Y=c_k), \;\;\; k=1,2,...,K
P(Y=ck),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=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
)
=
P
(
X
(
1
)
=
x
(
1
)
,
.
.
.
,
X
(
n
)
=
x
(
n
)
∣
Y
=
c
k
)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k)=\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的准确度。
朴素贝叶斯法进行分类时,对于给定的输入
x
x
x,通过学习到的模型计算后验概率分布
P
(
Y
=
c
k
∣
X
=
x
)
P(Y=c_k|X=x)
P(Y=ck∣X=x) 将后验概率最大的类作为
x
x
x 的类输出:
P
(
Y
=
c
k
∣
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|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)}
P(Y=ck∣X=x)=∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)代入上式可得:
P
(
Y
=
c
k
∣
X
=
x
)
=
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
)
,
      
k
=
1
,
2
,
.
.
.
,
K
P(Y=c_k|X=x)=\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)}, \;\;\; k=1,2,...,K
P(Y=ck∣X=x)=∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)P(Y=ck)∏jP(X(j)=x(j)∣Y=ck),k=1,2,...,K于是,朴素贝叶斯分类器可表示为:
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)由于上式中分母对所有
c
k
c_k
ck 都是相同的,因此
y
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=\arg\max_{c_k}P(Y=c_k)\prod_j P(X^{(j)}=x^{(j)}|Y=c_k)
y=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_{i=1}^N I(y_i=c_k)}{N}, \;\;\; k=1,2,...,K
P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,...,K设第
j
j
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
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
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其中,
x
i
(
j
)
x_i^{(j)}
xi(j) 是第
i
i
i 个样本的第
j
j
j 个特征;
a
j
l
a_{jl}
ajl 是第
j
j
j 个特征可能取的第
l
l
l 个值;
I
I
I 为指示函数。
贝叶斯估计
用极大似然估计可能会出现概率值为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\ge0
λ≥0。等价于在随机变量各个取值的频数上赋予一个正数
λ
>
0
\lambda>0
λ>0。当
λ
=
0
\lambda=0
λ=0 时就是极大似然估计。通常取
λ
=
1
\lambda=1
λ=1,这时称为拉普拉斯平滑。显然,对任何
l
=
1
,
2
,
.
.
.
,
S
j
l=1,2,...,S_j
l=1,2,...,Sj 和
k
=
1
,
2
,
.
.
.
,
K
k=1,2,...,K
k=1,2,...,K 有:
P
λ
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
>
0
∑
l
=
1
S
j
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
=
1
P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)>0 \\ \sum_{l=1}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1
Pλ(X(j)=ajl∣Y=ck)>0l=1∑SjP(X(j)=ajl∣Y=ck)=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)+λ
参考文献
[1] 李航. 统计学习方法. 清华大学出版社. 2012