朴素贝叶斯算法 — Naive Bayes
作者:Alex Hu
博客:https://blog.csdn.net/m0_37204267
转载请注明作者和出处。
1. 数据符号
设输入空间X⊆Rp为p维的向量集合,输出空间为类标集合Y={c1,c2,...,ck}。输入特征向量x∈X,x=(x1,x2,...,xp),输出为类标y∈Y。X是定义在输入空间X上的随机向量,Y是定义在输出空间Y上的随机向量。P(X,Y)是X和Y的联合概率分布。训练数据集为
T={(x1,y1),(x2,y2),...,(xN,yN)}
由P(X,Y)独立同分布产生。
2. 表示 — 条件独立性假设
朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法。
该算法成立需要很强的条件独立性假设:在给定样本类别的情况下,样本的各个特征之间是独立的。 这种假设在实际中很难成立,通常情况下各个特征之间是有联系的。但是这种假设会使得计算变得简单,在一些应用(如文本分类)中取得了不错的效果。这种假设因为把特征间的联系给去掉了,想要取得更高的分类性能就比较困难。
若没有条件独立性假设,条件概率分布P(X=x|Y=ck)有指数级数量的参数,要进行参数估计是不可行的。假设xj可能的取值有Sj个,j=1,2,...,m, Y可取值有K个,那么参数个数为K∏mj=1Sj。
朴素贝叶斯方法对条件概率分布作了条件独立性假设。具体的,条件独立性假设是
P(X=x|Y=ck)=P(X1=x1,X2=x2,...,Xp=xp|Y=ck)=∏j=1pP(Xj=xj|Y=ck)(1)
需要的参数的个数为K(Sj−1)p,数量远小于上述参数。
3. 推理 — 基本方法
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的类输出。
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)(2)
将公式(1)带入公式(2)得到
P(Y=ck|X=x)=P(Y=ck)∏pj=1P(Xj=xj|Y=ck)∑kP(Y=ck)∏pj=1P(Xj=xj|Y=ck)(3)
3.3 朴素贝叶斯分类器
公式(3)是朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可以表示为
y=f(x)=argmaxckP(Y=ck)∏pj=1P(Xj=xj|Y=ck)∑kP(Y=ck)∏pj=1P(Xj=xj|Y=ck)(4)
注意到公式(4)中分母对所有ck都是相同的,所以,
y=f(x)=argmaxckP(Y=ck)∏j=1pP(Xj=xj|Y=ck)(5)
4 学习 — 参数估计
4.1 极大似然估计
从公式(5)中看出需要估计的参数有P(Y=ck)和P(Xj=xj|Y=ck)。可以应用极大似然估计从原始的训练数据集中做简单统计,可以得到
P(Y=ck)=∑Ni=1I(yi=ck)Nk=1,2,...,K(先验概率)
P(Xj=ajl|Y=ck)=∑Ni=1I(Xji=ajl,yi=ck)∑Ni=1I(yi=ck)i=1,2,...,N;l=1,2,...,Sj;k=1,2,...K(似然概率)
其中I(⋅)是指示函数,xji表示第i个样本的第j个特征值。
4.2 贝叶斯估计 — 平滑处理
因为训练数据集数量很少,若出现某个类别或特征值未出现的情况,用极大似然估计的过程中,这些量的概率就为0,会影响后验概率的计算,使分类产生偏差。解决的方法是采用贝叶斯估计:
P(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ
Pλ(Xj=ajl|Y=ck)=∑Ni=1I(Xji=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ
其中λ>0。当 λ=0是就是最大似然估计,当λ=1时称为拉普拉斯平滑。
个人理解,这里的λ可以当作各个量的的先验知识。
5 统计决策理论 — 后验概率最大化
后验概率最大⟺期望风险最小化
假设选择0-1损失函数:
L(Y,f(X))={01Y≠f(X)Y=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)=argminy∈Y∑k=1KL(ck,y)P(ck|X=x)=argminy∈Y∑k=1KP(y≠ck|X=x)=argminy∈Y(1−P(y=ck|X=x))=argmaxy∈YP(y=ck|X=x)
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
f(x)=argmaxckP(ck|X=x)
6 朴素贝叶斯与概率图的关系
朴素贝叶斯也是概率图模型中最简单的一种形式。 下面给出朴素贝叶斯算法在概率图模型中的位置。

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