朴素贝叶斯(naive Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。
朴素贝叶斯法的学习与分类
1. 基本方法
设输入空间
χ
⊆
R
n
\chi \subseteq \bold R^n
χ⊆Rn为n维向量的集合,输出空间为类标记集合
γ
=
c
1
,
c
2
,
.
.
.
,
c
K
\gamma = {c_1,c_2,...,c_K}
γ=c1,c2,...,cK。输入为特征向量
x
∈
χ
x\in \chi
x∈χ,输出为类标记(class label)
y
∈
γ
y\in \gamma
y∈γ。X是定义在输入空间
χ
\chi
χ上的随机向量,Y是定义在输出空间
γ
\gamma
γ上的随机变量。
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
,
Y
)
P(X,Y)
P(X,Y).
条件概率分布 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可取值有K个,那么参数个数为 K ∏ i = 1 n S j K\prod_{i=1}^nS_j K∏i=1nSj。
朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是
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
)
(1)
P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)}...,X^{(n)}=x^{(n)}|Y=c_k) =\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \tag{1}
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)(1)
朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。
朴素贝叶斯法分类时,对给定的输入x,通过学习到的模型计算后验概率分布
P
(
Y
=
c
k
∣
X
=
x
)
P(Y=c_k|X=x)
P(Y=ck∣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
)
(2)
P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)} \tag{2}
P(Y=ck∣X=x)=∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)(2)
将(1)式代入(2)式,有
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_jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)},\quad 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
)
=
a
g
r
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
)
(3)
y=f(x)=agr\space max_{c_k}\frac{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_k P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)} \tag{3}
y=f(x)=agr maxck∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)P(Y=ck)∏jP(X(j)=x(j)∣Y=ck)(3)
注意到,在上式(3)中分母对所有
c
k
c_k
ck都是相同的,所以
y
=
a
r
g
m
a
x
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=arg\space max_{c_k}P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)
y=arg maxckP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
2. 后验概率最大化的含义
朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。假设选择0-1损失函数:
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))= \begin{cases} 1, & Y \neq f(X) \\ 0, & Y = f(X) \end{cases}
L(Y,f(X))={1,0,Y=f(X)Y=f(X)
式中
f
(
X
)
f(X)
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
)
=
a
r
g
m
i
n
y
∈
γ
∑
k
=
1
K
L
(
c
k
,
y
)
P
(
c
k
∣
X
=
x
)
=
a
r
g
m
i
n
y
∈
γ
∑
k
=
1
K
P
(
y
≠
c
k
∣
X
=
x
)
=
a
r
g
m
i
n
y
∈
γ
(
1
−
P
(
y
=
c
k
∣
X
=
x
)
)
=
a
r
g
m
a
x
y
∈
γ
P
(
y
=
c
k
∣
X
=
x
)
f(x)=arg \space min_{y\in \gamma}\sum_{k=1}^KL(c_k,y)P(c_k|X=x) \\ =arg\space min_{y\in \gamma}\sum_{k=1}^KP(y\neq c_k|X=x) \\ =arg\space min_{y\in \gamma}(1-P(y=c_k|X=x)) \\ =arg\space max_{y\in \gamma}P(y=c_k|X=x)
f(x)=arg miny∈γk=1∑KL(ck,y)P(ck∣X=x)=arg miny∈γk=1∑KP(y=ck∣X=x)=arg miny∈γ(1−P(y=ck∣X=x))=arg maxy∈γP(y=ck∣X=x)
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
f
(
x
)
=
a
r
g
m
a
x
c
k
P
(
c
k
∣
X
=
x
)
f(x)=arg\space max_{c_k}P(c_k|X=x)
f(x)=arg maxckP(ck∣X=x)
即朴素贝叶斯法所采用的原理。