朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出概率最大的输出概率y。1
一.训练
设输入空间 x⊆Rn 为n维向量的集合,输出空间为类标记集合 y={c1,c2,...,cK} 。朴素贝叶斯法通过训练数据集学习联合发布概率p(x,y)。具体的,学习先验概率分布及条件概率分布。
先验概率分布:
P(Y=ck),k=1,2,⋯,K(1)
条件概率分布:
P(X=x|Y=ci)=P(X(1)=x(1),⋯,X(n)=x(n)|Y=ci)(2)
朴素贝叶斯法对条件概率分布做了条件独立性的假设:
P(X=x|Y=ci)=P(X(1)=x(1),⋯,X(n)=x(n)|Y=ci)=∏i=1nP(X(i)=x(i)|Y=ci)(2)
条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时也会牺牲一定的分类准确率。
二.分类
朴素贝叶斯法分类时,对于给定的输入x,通过学习到的模型计算后验概率分布 P(Y=ck|X=x) ,将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理进行:
P(y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)p(X=x)(3)
将式(2)代入式(3)有:
P(y=ck|X=x)=∏ni=1P(X(i)=x(i)|Y=ck)P(Y=ck)p(X=x)(4)
注意到对于所有的类
ck ,式(4)的分母都是相同的,于是贝叶斯分类器可以表示为
y=argmaxck∏i=1nP(X(i)=x(i)|Y=ck)P(Y=ck)(5)
三.参数估计
1. 极大似然估计
在朴素贝叶斯法中,学习意味着估计 P(Y=ck) 和 P(X(i)=x(i)|Y=ck) 。可以应用极大似然估计法估计相应的概率。
先验概率 P(Y=ck) 的极大似然估计是
P(Y=ck)=∑Ni=1I(yi=ck)N(6)
上式的含义是类标记为
ck 的样本数量占总样本数量的比例。
设第j个特征 x(j) 可能的取值集合为 {aj1,aj2,⋯,ajsj} ,条件概率 P(x(j)=aj1|Y=ck) 的极大似然估计为
P(x(j)=aj1|Y=ck)=∑Ni=1I(x(j)i=aj1,yi=ck)∑Ni=1I(yi=ck)(7)
2. 贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为0的情况,这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。
条件概率的贝叶斯估计是
pλ(X(j)=aj1|Y=ck)=∑Ni=1I(x(j)i=aj1,yi=ck)+λ∑Ni=1I(yi=ck)+sjλ(8)
式中
λ≥0 。当
λ=0 就是极大似然估计。常取
λ=1 ,这时称为拉普拉斯平滑。
先验概率的贝叶斯估计是
pλ(Y=ck)=∑Ni=1(yi=ck)+λN+kλ(9)
3.属性为连续值
当属性为连续值时,无法直接通过统计得到属性的条件概率。可以假设每个属性都服从高斯分布,分别计算出每一个类别每个属性的平均值和标准差。
μki=1M∑m=1Mx(i)mI(ym=ck)δ2ki=1M∑m=1M(x(i)m−μki)2I(ym=ck)p(x(i)=a|y=ck)=12π−−√δe−(a−μki)22δ2ki
四、优缺点
- 对小规模数据表现很好,适合多分类任务,适合增量式训练
- 对输入数据的表达形式很敏感(连续、离散)
参考文献