朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布P(X,Y),然后求得后验概率分布P(Y|X)。具体是利用训练数据学习P(X|Y)和P(Y)的估计,得到联合概率分布:P(X,Y)=P(Y)P(X|Y)。
朴素贝叶斯法的基本假设是条件独立性:
P(X=x|Y=ck)==P(X(1)=x(1),⋯,X(n)=x(n)|Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)
这是一个较强的假设。由于这一假设,模型包含该的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。
朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。
P(Y|X)=P(X,Y)P(X)=P(Y)P(X|Y)∑YP(Y)P(X|Y)
一、极大似然估计
估计两部分参数,先验概率P(Y=ck)和条件概率P(X(j)=x(j)|Y=ck)。
1. 先验概率P(Y=ck)的极大似然估计是:
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,⋯,K
2. 设第j个特征x(j)可能取值的集合为{aj1,aj2,⋯,ajSj},条件概率P(X(j)=ajl|Y=ck)的意义是在某一类Y=ck的条件下,x的第j个分量特征取值ajl的概率。
P(X(j)=ajl|Y=ck)=∑i=1NI(x(j)i=ajl,yi=ck)∑i=1NI(yi=ck)
j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K
上式中,xji是第i个样本的第j个特征;ajl是第j个特征可能取的第l个值;I为指示函数。总的需要估计的参数数量为:
二、学习与分类算法
(1)计算先验概率和条件概率
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,⋯,K
P(X(j)=ajl|Y=ck)=∑i=1NI(x(j)i=ajl,yi=ck)∑i=1NI(yi=ck)
j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K
(2)对于给定的实例x=(x(1),x(2),⋯,x(n))T,计算
P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck),k=1,2,⋯,K
(3)确定实例x所属的类
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)
书中的一个例子:
![]()
三、贝叶斯估计
极大似然估计时参数会产生0频问题,会影响到后验概率的计算结果,使分类产生偏差。采用贝叶斯估计可以解决这个问题。
先验概率的贝叶斯估计是:
Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+Kλ
上式中,K表示类别数目。
条件概率的贝叶斯估计是:
上式中,Sj表示第j个特征的取值个数。
以上两个公式中,当
例子: