3 朴素Bayes法

1 朴素 Bayes 法的学习与分类

1.1 基本方法

延续上一章的假设,XRn,Y={c1,,cK}. XX,YY. P(X,Y)X,Y的联合概率分布,据此采样得到训练数据集T={(x1,y1),,(xn,yn)}.
朴素Bayes法 是通过T学习P(X,Y)的方法. 它与 Bayes 估计是不同的概念. “朴素“的得名由来是因为它做出了条件独立性的假设.

联合分布P(X,Y)可以由先验分布

(1.1)P(Y=ck),1kK

条件分布

(1.2)P(X=x|Y=ck)=P(X(i)=x(i),1in|Y=ck)

得到. 朴素 Bayes 法给出了条件独立性的假设,也即 (2) 可以进一步假设

(1.3)P(X=x|Y=ck)=j=1nP(X(j)=x(j)|Y=ck).

这样,依据 Bayes定理 计算后验分布

P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)(代入(1.3))=P(Y=ck)jP(X(j)=x(j)|Y=ck)kP(Y=ck)jP(X(j)=x(j)|Y=ck)

于是朴素 Bayes 分类器为

y=f(x)=argmaxckP(Y=ck)jP(X(j)=x(j)|Y=ck)kP(Y=ck)jP(X(j)=x(j)|Y=ck).(1.4)=argmaxckP(Y=ck)jP(X(j)=x(j)|Y=ck).

1.2 后验概率最大化的含义

下面我们说明: 朴素 Bayes 法将实例分到后验概率最大的类的做法,与期望风险最小化等价.

事实上,如果 0-1 损失函数

L(Y,f(X))={1,Yf(X),0,Y=f(X),

则它对应期望风险函数

Rexp=E[L(Y,f(X))]=EXk=1K[L(ck,f(X))]P(ck|X).

X=x逐个极小化, 得

f(x)=argminyYk=1KL(ck,y)P(ck|X=x)=argminyYk=1KP(yck|X=x)=argminyY(1P(y=ck|X=x))=argmaxyYP(y=ck|X=x).

这就是朴素 Bayes 方法.

2 朴素 Bayes 法的参数估计

2.1 极大似然估计

在朴素 Bayes 法中,我们要学习P(Y=ck),P(X(j)=x(j)|Y=ck). 可以用极大似然估计. 首先是先验概率P(Y=ck):

(2.1)P(Y=ck)=i=1NI(yi=ck)N,1kK.

(这个结论的推导在 这个例子中)
设第j个特征x(j)可能的取值的集合为{aj1,aj2,,ajSj}, 则条件概率P(X(j)=ajl|Y=ck)的极大似然估计为

(2.2)P(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck),j=1,,n;l=1,,Sj;k=1,,K.

2.2 学习与分类算法

朴素 Bayes 算法

输入 训练数据T, 实例x(T={(x1,y1),,(xN,yN)}, 其中xi=(xi(1),,xi(n))T, xi(j)是第i个样本的第j个特征, xi(j){aj1,,ajSj},1jn,1lSj,yi{c1,,cK})
输出 x的分类

  1. 计算先验概率和条件概率: (2.1)(2.2).
  2. 对给定的x=(x(1),,x(n))T, 计算P(Y=ck)j=1nP(X(j)=x(j)|Y=ck).
  3. 确定x的类y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck).

2.3 Bayes 估计

Bayes 估计用于规避概率值为 0 的情形. 具体地, 条件概率的 Bayes 估计

(2.3)Pλ(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ.

其中λ0. 当λ=0就是极大似然估计; λ=1称为Laplace 平滑. 显然对任意l=1,,Sj,k=1,,K

Pλ(X(j)=ajl|Y=ck)>0,l=1SjP(X(j)=ajl|Y=ck)=1.

先验概率的 Bayes 估计

(2.4)Pλ(Y=ck)=i=1NI(yi=ck)+λN+Kλ,