目录
朴素贝叶斯法(naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯法与贝叶斯估计(Bayesian estimation)是不同的概念。
4.1 朴素贝叶斯法的学习与分类
4.1.1 基本方法
设输入空间
χ
∈
R
n
\chi \in R^n
χ∈Rn 为
n
n
n 维向量的集合。X 是定义在输入空间
χ
\chi
χ 上的随机变量,Y 是定义在输出空间 Y 上的随机变量,输出空间为类标记集合
{
c
1
,
c
2
,
.
.
.
,
c
K
}
\{c_1, c_2,...,c_K\}
{c1,c2,...,cK}。
P
(
X
,
Y
)
P(X,Y)
P(X,Y) 是 X 和 Y 的联合概率分布。训练数据集由
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
也就是在某一类的条件下,某一个输入的sample的概率
这样就可以学习到联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)
朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是:
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}^nP(X^{(j)}=x^{(j)}\vert 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 ,通过学习到的模型计算后验概率分布
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
)
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)}
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
)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
P
(
Y
=
c
k
)
∑
k
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
P
(
Y
=
c
k
)
,
k
=
1
,
2
,
.
.
.
,
K
P(Y=c_k|X=x)=\frac {\prod_{j=1}^nP(X^{(j)}=x^{(j)}\vert Y=c_k^{})P(Y=c_k)}{\sum_k\prod_{j=1}^nP(X^{(j)}=x^{(j)}\vert Y=c_k^{})P(Y=c_k)}, k=1,2,...,K
P(Y=ck∣X=x)=∑k∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck),k=1,2,...,K
这是朴素贝叶斯分类的基本公式,于是,朴素贝叶斯分类器可表示为
y
=
f
(
x
)
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
∑
k
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=f(x)=\arg\underset{c_k}{\max}\frac {P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}\vert Y=c_k^{})}{\sum_kP(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}\vert Y=c_k^{})}
y=f(x)=argckmax∑kP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)
因为式子中分母对所有
c
k
c_k
ck都是相同的,所以
y
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=\arg\underset{c_k}{\max} {P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}\vert Y=c_k^{})}
y=argckmaxP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)
4.1.2 后验概率最大化的含义
朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。假设选择 0-1 损失一函数:
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))=\left\{\begin{array}{lc}1,&Y\neq f(X)\\0,&Y=f(X)\end{array}\right.
L(Y,f(X))={1,0,Y=f(X)Y=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
)
=
arg
min
y
∈
Y
∑
k
=
1
K
L
(
c
k
,
y
)
P
(
c
k
∣
X
=
x
)
=
a
r
g
min
y
∈
Y
∑
k
=
1
K
P
(
y
≠
c
k
∣
X
=
x
)
=
a
r
g
min
y
∈
Y
(
1
−
P
(
y
=
c
k
∣
X
=
x
)
)
=
arg
max
y
∈
Y
P
(
y
=
c
k
∣
X
=
x
)
f(x)=\arg\min_{y\in Y}\sum_{k=1}^KL(c_k,y)P(c_k|X=x)\\=arg\min_{y\in Y}\sum_{k=1}^KP(y\neq c_k|X=x)\\=arg\min_{y\in Y}(1-P(y= c_k|X=x))\\=\arg\max_{y\in Y}P(y= c_k|X=x)
f(x)=argy∈Ymink=1∑KL(ck,y)P(ck∣X=x)=argy∈Ymink=1∑KP(y=ck∣X=x)=argy∈Ymin(1−P(y=ck∣X=x))=argy∈YmaxP(y=ck∣X=x)所以。。。这不是就是当 X=x,使y是c_k的概率最大时候的参数么
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
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)即朴素贝叶斯法所采用的原理。
4.2 朴素贝叶斯法的参数估计
4.2.1 极大似然估计
在朴素贝叶斯法中,学习意味着估计
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}^NI(y_i=c_k)}{N},k=1,2,...,K
P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,...,K就是说,P(Y=c_k)是个概率分布,分母是N个样本,分子是每个类的样本数量
设第
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
=
j
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=j}^NI(y_i=c_k)}\\j=1,2,...,n; l=1,2,...,S_j;k=1,2,...,K
P(X(j)=ajl∣Y=ck)=∑i=jNI(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 为指示函数。
I代表的是指示函数(indicator function)。
它的含义是:当输入为True的时候,输出为1,输入为False的时候,输出为0。 例如: I ( f ( x i ) ≠ y i ) I(f(x_i) \neq y_i) I(f(xi)=yi)
,表示当 f ( x i ) f(x_i) f(xi) 不等于 y i y_i yi的时候输出为1,否则输出为0。
就是说,分母是一类的样本数量,分子是在一类中所有样本的特征 i 取值为 a_jl 的总数量
4.2.2 学习与分类算法
下面给出朴素贝叶斯法的学习与分类算法。
4.2.3 贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为 0 的情况(也就是在训练集中某一个特征的某个取值并没有取到,但是在测试集中却有取到这个值),这时会影响后验概率的计算结果(结果为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
=
j
N
I
(
y
i
=
c
k
)
+
S
j
λ
P_\lambda(X^{(j)}=a_{jl}\vert Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{i=j}^NI(y_i=c_k)+S_j\lambda}
Pλ(X(j)=ajl∣Y=ck)=∑i=jNI(yi=ck)+Sjλ∑i=1NI(xi(j)=ajl,yi=ck)+λ式中
λ
⩾
0
\lambda\geqslant0
λ⩾0。等价于在随机变量各个取值的频数上赋予一个正数
λ
>
0
\lambda>0
λ>0。当
λ
=
0
\lambda = 0
λ=0时,就是极大似然估计。常取
λ
=
1
\lambda=1
λ=1,这时成为拉普拉斯平滑(Laplacian smoothing)。显然,对任何
l
=
1
,
2
,
.
.
.
,
S
j
,
k
=
1
,
2
,
.
.
.
,
K
l=1,2,...,S_j, k=1,2,...,K
l=1,2,...,Sj,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}\vert Y=c_k)>0\\\sum_{l=1}^{S_j}P(X^{(j)}=a_{jl}\vert 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{{\displaystyle\sum_{i=1}^N}I(y_i=c_k)+\lambda}{N+K\lambda}
Pλ(Y=ck)=N+Kλi=1∑NI(yi=ck)+λ也是保证了每一类出现的概率不为零
本章概要
1.朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 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)
概率估计方法可以是极大似然估计或贝叶斯估计。
2.朴素贝叶斯法的基本假设是条件独立性,
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
)
\begin{aligned} P(X=x | Y=c_{k} )=P\left(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)} | Y=c_{k}\right) \\ =\prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \end{aligned}
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)
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。
3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。
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)
将输入
x
x
x分到后验概率最大的类
y
y
y。
y
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
j
=
x
(
j
)
∣
Y
=
c
k
)
y=\arg \max _{c_{k}} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X_{j}=x^{(j)} | Y=c_{k}\right)
y=argckmaxP(Y=ck)j=1∏nP(Xj=x(j)∣Y=ck)
后验概率最大等价于0-1损失函数时的期望风险最小化。