朴素贝叶斯法(naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对给定的输入 x x x,利用贝叶斯定理求出后验概率最大的输出 y y y。
基本方法:
设输入空间 X ? R n X\subseteq R^n X?Rn为 n n n维向量的集合,输出空间为类标记集合 Y = { c 1 , c 2 , . . . , c k } Y=\{c_1,c_2,...,c_k\} Y={c1?,c2?,...,ck?}。输入为特征向量 x ∈ X x\in X x∈X,输出为类标记 y ∈ Y y\in Y y∈Y。 X X X是定义在输入空间 X X X上的随机向量, Y Y Y是定义在输出空间 Y 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), \quad 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),\quad 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=x|Y=C_k) P(X=x∣Y=Ck?)由指数级数量的参数,其估计实际是不可能的。事实上,假设特征 X ( j ) X^{(j)} X(j)可能的取值有 S j S_j Sj?个, j = 1 , 2 , . . . , n j=1,2,...,n j=1,2,...,n, Y Y Y可能取值有 K K K个,那么参数个数为 K ∏ j = 1 n S j K\prod_{j=1}^{n}S_j K∏j=1n?Sj?个。
于是朴素贝叶斯算法对条件概率分布作出了条件独立性的假设。这是一个非常强的假设,等于是说用于分类的特征在类确定的条件下都是条件独立的,具体地,条件独立性假设是
P
(
X
=
x
∣
Y
=
C
k
)
=
P
(
X
(
1
)
=
x
(
1
)
,
.
.
.
,
X
(
n
)
=
x
(
n
)
∣
Y
=
C
k
)
P(X=x|Y=C_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=C_k)
P(X=x∣Y=Ck?)=P(X(1)=x(1),...,X(n)=x(n)∣Y=Ck?)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
C
k
)
\qquad \quad =\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=C_k)
=j=1∏n?P(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)=∑k?P(X=x∣Y=Ck?)P(Y=Ck?)P(X=x∣Y=Ck?)P(Y=Ck?)?
=
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
)
\qquad \qquad \qquad \qquad=\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?P(Y=Ck?)∏j?P(X(j)=x(j)∣Y=Ck?)P(Y=Ck?)∏j?P(X(j)=x(j)∣Y=Ck?)?
于是,朴素贝叶斯分类器可表示为
y
=
f
(
x
)
=
a
r
g
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)=argCk?max?∑k?P(Y=Ck?)∏j?P(X(j)=x(j)∣Y=Ck?)P(Y=Ck?)∏j?P(X(j)=x(j)∣Y=Ck?)?
由于分母对所有的类都是相同的,所以
y
=
f
(
x
)
=
a
r
g
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)=argCk?max?P(Y=Ck?)j∏?P(X(j)=x(j)∣Y=Ck?)
算法:
输入:训练集 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?)},其中 x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T xi?=(xi(1)?,xi(2)?,...,xi(n)?)T, x i ( j ) x_i^{(j)} xi(j)?是第 i i i个样本的第 j j j个特征, x i ( j ) ∈ { a j 1 , a j 2 , . . . , a j S j } x_i^{(j)} \in \{a_{j1},a_{j2},...,a_{jS_j}\} xi(j)?∈{aj1?,aj2?,...,ajSj??}, a j l a_{jl} ajl?是第 j j j个特征可能取的第 l l l个值, j = 1 , 2 , . . . , n j=1,2,...,n j=1,2,...,n, l = 1 , 2 , . . . , S j l=1,2,...,S_j l=1,2,...,Sj?, y i ∈ { C 1 , C 2 , . . . , C k } y_i \in \{C_1,C_2,...,C_k\} yi?∈{C1?,C2?,...,Ck?};实例 x x x。
输出:实例 x x x的分类。
- 计算先验概率及条件概率
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}, \qquad k=1,2,...,k P(Y=Ck?)=N∑i=1N?I(yi?=Ck?)?,k=1,2,...,k
P ( X ( j ) = a j l ∣ Y = C k ) = ∑ i = 1 N I ( x ( 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^{(j)}=a_{jl},y_i=C_k)}{\sum_{i=1}^{N}I(y_i=C_k)} P(X(j)=ajl?∣Y=Ck?)=∑i=1N?I(yi?=Ck?)∑i=1N?I(x(j)=ajl?,yi?=Ck?)?
j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . , K \qquad j=1,2,...,n; \quad l=1,2,...,S_j; \quad k=1,2,...,K j=1,2,...,n;l=1,2,...,Sj?;k=1,2,...,K- 对于给定实例 x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) T x={(x^{(1)},x^{(2)},...,x^{(n)})}^T x=(x(1),x(2),...,x(n))T,计算(这里用到了特征条件独立假设)
P ( Y = C k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = C k ) , k = 1 , 2 , . . . , K P(Y=C_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=C_k),\qquad k=1,2,...,K P(Y=Ck?)j=1∏n?P(X(j)=x(j)∣Y=Ck?),k=1,2,...,K- 确定实例 x x x的分类
y = a r g max ? C k P ( Y = C k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = C k ) y=arg\max_{C_k}P(Y=C_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=C_k) y=argCk?max?P(Y=Ck?)j=1∏n?P(X(j)=x(j)∣Y=Ck?)