朴素贝叶斯算法 — Naive Bayes

作者:Alex Hu
博客:https://blog.csdn.net/m0_37204267
转载请注明作者和出处。


1. 数据符号

设输入空间XRpp维的向量集合,输出空间为类标集合Y={c1,c2,...,ck}。输入特征向量xX,x=(x1,x2,...,xp),输出为类标yYX是定义在输入空间X上的随机向量,Y是定义在输出空间Y上的随机向量。P(X,Y)XY的联合概率分布。训练数据集为

T={(x1,y1),(x2,y2),...,(xN,yN)}
P(X,Y)独立同分布产生。


2. 表示 — 条件独立性假设

朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法

该算法成立需要很强的条件独立性假设:在给定样本类别的情况下,样本的各个特征之间是独立的。 这种假设在实际中很难成立,通常情况下各个特征之间是有联系的。但是这种假设会使得计算变得简单,在一些应用(如文本分类)中取得了不错的效果。这种假设因为把特征间的联系给去掉了,想要取得更高的分类性能就比较困难。

若没有条件独立性假设,条件概率分布P(X=x|Y=ck)有指数级数量的参数,要进行参数估计是不可行的。假设xj可能的取值有Sj个,j=1,2,...,m, Y可取值有K个,那么参数个数为Kj=1mSj

朴素贝叶斯方法对条件概率分布作了条件独立性假设。具体的,条件独立性假设是

(1)P(X=x|Y=ck)=P(X1=x1,X2=x2,...,Xp=xp|Y=ck)=j=1pP(Xj=xj|Y=ck)
需要的参数的个数为K(Sj1)p,数量远小于上述参数。


3. 推理 — 基本方法

Created with Raphaël 2.1.2开始根据特征条件独立性假设求联合概率分布根据贝叶斯定理求后验概率最大结束

3.1 求联合概率分布

朴素贝叶斯算法通过训练数据集学习联合概率分布P(X,Y)。具体方法是:通过先验概率分布P(Y=ck)和条件概率分布P(X=x|Y=ck)=P(X1=x1,X2=x2,...,Xp=xp|Y=ck)学习到联合概率分布P(X,Y)

3.2 求后验概率

根据贝叶斯定理,对给定的输入x,通过学习的模型求得后验概率分布P(Y=ck|X=x), 将后验概率最大的类作为x的类输出。

(2)P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)

将公式(1)带入公式(2)得到
(3)P(Y=ck|X=x)=P(Y=ck)j=1pP(Xj=xj|Y=ck)kP(Y=ck)j=1pP(Xj=xj|Y=ck)

3.3 朴素贝叶斯分类器

公式(3)是朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可以表示为

(4)y=f(x)=argmaxckP(Y=ck)j=1pP(Xj=xj|Y=ck)kP(Y=ck)j=1pP(Xj=xj|Y=ck)

注意到公式(4)中分母对所有ck都是相同的,所以,
(5)y=f(x)=argmaxckP(Y=ck)j=1pP(Xj=xj|Y=ck)


4 学习 — 参数估计

4.1 极大似然估计

从公式(5)中看出需要估计的参数有P(Y=ck)P(Xj=xj|Y=ck)。可以应用极大似然估计从原始的训练数据集中做简单统计,可以得到

(先验概率)P(Y=ck)=i=1NI(yi=ck)Nk=1,2,...,K

(似然概率)P(Xj=ajl|Y=ck)=i=1NI(Xij=ajl,yi=ck)i=1NI(yi=ck)i=1,2,...,N;l=1,2,...,Sj;k=1,2,...K

其中I(·)是指示函数,xij表示第i个样本的第j个特征值。

4.2 贝叶斯估计 — 平滑处理

因为训练数据集数量很少,若出现某个类别或特征值未出现的情况,用极大似然估计的过程中,这些量的概率就为0,会影响后验概率的计算,使分类产生偏差。解决的方法是采用贝叶斯估计

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

Pλ(Xj=ajl|Y=ck)=i=1NI(Xij=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ

其中λ>0。当 λ=0是就是最大似然估计,当λ=1时称为拉普拉斯平滑。

个人理解,这里的λ可以当作各个量的的先验知识。


5 统计决策理论 — 后验概率最大化

 后验概率最大期望风险最小化 

假设选择0-1损失函数:
L(Y,f(X))={0Yf(X)1Y=f(X)

其中f(X)是分类决策函数。这时,期望风险函数为
Rexp(f)=E[L(Y,f(X))]=X×YL(y,f(x))P(x,y)dxdy=X×YL(y,f(x))P(x,y)dxdy=X [YL(y,f(x))P(y|x)dy] P(x)dx=XE[Y|X=x]P(x)dx

原始的期望是对联合概率分布P(X,Y)取得,经过转换后只考虑取得条件期望:
Rexp(f)=EX[k=1KL(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)

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
f(x)=argmaxckP(ck|X=x)


6 朴素贝叶斯与概率图的关系

朴素贝叶斯也是概率图模型中最简单的一种形式。 下面给出朴素贝叶斯算法在概率图模型中的位置。
朴素贝叶斯算法 --- Naive Bayes


参考文献

[1] 李航. 统计学习方法. 清华出版社, 2012.
[2] 宗成庆. 统计自然语言处理(第二版). 清华大学出版社, 2013.
[3] 孙相国. 概率图模型4:贝叶斯网络. 2017.

相关文章: