朴素贝叶斯(naive Bayes)算法是基于贝叶斯定理与特征条件独立假设的分类方法。
对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

朴素贝叶斯算法的学习与分类

基本方法

朴素贝叶斯算法对条件概率分布作了条件独立性的假设。

<nobr> P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)=j=1nP(X(j)=x(j)|Y=ck)(4.3) </nobr>

朴素贝叶斯算法学习到生成数据的机制,所以属于生成模型。
朴素贝叶斯法分类时,对于给定的输入x,通过学习到的模型计算后验概率分布 <nobr> P(Y=ck,|X=x) </nobr> ,将后验概率最大的类作为x的类输出。
后验概率计算根据贝叶斯定理进行:
<nobr> P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)(4.4) </nobr>
将式(4.3)代入式(4.4)有
<nobr> P(Y=ck|X=x)=j=1nP(X(j)=x(j)|Y=ck)P(Y=ck)kj=1nP(X(j)=x(j)|Y=ck)P(Y=ck)(4.5) </nobr>
朴素贝叶斯分类器可表示为
<nobr> y=f(x)=argmaxckj=1nP(X(j)=x(j)|Y=ck)P(Y=ck)kj=1nP(X(j)=x(j)|Y=ck)P(Y=ck)(4.6) </nobr>
注意到,在式(4.6)中分母对所有 <nobr> ck </nobr> 都是相同的,所以,
<nobr> y=f(x)=argmaxckj=1nP(X(j)=x(j)|Y=ck)P(Y=ck)(4.7) </nobr>

后验概率最大化的含义

根据期望风险最小化准则可推得后验概率最大化。

朴素贝叶斯法的参数估计

极大似然估计

先验概率 <nobr> P(Y=ck) </nobr>的极大似然估计是
<nobr> P(Y=ck)=i=1NI(yi=ck)N,k=1,...,K </nobr>
设第j个特征 <nobr> x(j) </nobr>可能的取值集合为 <nobr> aj1,...,ajsj </nobr>,条件概率 <nobr> P(X(j)=ajl|Y=ck) </nobr>的极大似然估计是
<nobr> P(X(j)=ajl|Y=ck)=i=1NI(x(j)i=ajl,yi=ck)i=1NI(yi=ck) </nobr>

贝叶斯估计

用极大似然估计可能会出现所要估计的概率值为0的情况。这会影响到后验概率的计算结果,使分类的结果产生偏差。
条件概率的贝叶斯估计是
<nobr> P(X(j)=ajl|Y=ck)=i=1NI(x(j)i=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ </nobr>
式中 <nobr> λ0 </nobr> <nobr> Sj </nobr>为第j个特征取值的种类。等价于在随机变量各个取值的频数上赋予一个整数 <nobr> λ>0 </nobr>。当 <nobr> λ=0 </nobr>时就是极大似然估计。常取 <nobr> λ=1 </nobr>,这时称为拉普拉斯平滑(Laplace smoothing)。
先验概率的贝叶斯估计是
<nobr> P(Y=ck)=i=1NI(yi=ck)+λN+Kλ,KY </nobr>

朴素贝叶斯法中假设输入变量都是条件独立的,如果假设它们之间存在概率依存关系,模型就变成了贝叶斯网络。

常用的朴素贝叶斯分类器

根据假设不同的 <nobr> P(X(j)|y=ck) </nobr>分布,

高斯贝叶斯分类器

假设特征的条件概率分布满足高斯分布

多项式贝叶斯分类器

假设特征的条件概率分布满足多项式分布
<nobr> P(X(j)=asj|y=ck)=Nkj+αNk+αn </nobr>

伯努利贝叶斯分类器

假设特征的条件概率分布满足二项分布
<nobr> P(X(j)=asj|y=ck)=pX(j)+(1p)(1X(j)) </nobr>
要求特征的取值为0或1,且 <nobr> P(x(J)=1|Y=ck)=p </nobr>
与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是。伯努利模型中每个特征的取值只能是1或0.(文本分类,单词出现于否。)
参考文献

统计学习方法 第4章
Python大战机器学习 第3章