<a target="_blank" href="http://blog.csdn.net/qll125596718/article/details/8445217">原文地址</a>
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。简单来说,朴素贝叶斯分类器假设样本每个特征与其他特征都不相关。举个例子,如果一种水果具有红,圆,直径大概4英寸等特征,该水果可以被判定为是苹果。尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的。尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的效果。朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(离散型变量是先验概率和类条件概率,连续型变量是变量的均值和方差)。
贝叶斯分类模型如下:

其中,x表示属性集,y表示类变量,p(y)为先验概率,p(x|y)为类条件概率,p(x)为证据,p(y|x)为后验概率。贝叶斯分类模型就是用先验概率p(y)、类条件概率p(x|y)和证据p(x)来表示后验概率。在比较y的后验概率时,分母中的证据p(x)总是常数,因此可以忽略不计。先验概率p(y)可以通过计算训练集中属于每个类的训练记录所占的比例很容易估计。对类条件概率p(x|y)的估计,不同的实现决定不同的贝叶斯分类方法,常见的有朴素贝叶斯分类法和贝叶斯信念网络。
数据集如下:
从该数据集计算得到的先验概率以及每个离散属性的类条件概率、连续属性的类条件概率分布的参数(样本均值和方差)如下:
先验概率:p(yes)=0.3;p(no)=0.7
p(有房=是|no) = 3/7
p(有房=否|no) = 4/7
p(有房=是|yes) = 0
p(有房=否|yes) = 1
p(婚姻状况=单身|no) = 2/7
p(婚姻状况=离婚|no) = 1/7
p(婚姻状况=已婚|no) = 4/7
p(婚姻状况=单身|yes) = 2/3
p(婚姻状况=离婚|yes) = 1/3
p(婚姻状况=已婚|yes) = 0
年收入:
如果类=no:样本均值=110; 样本方差=2975
如果类=yes:样本均值=90; 样本方差=25
——》待预测记录:x={有房=否,婚姻状况=已婚,年收入=120k}
p(no)*p(有房=否|no)*p(婚姻状况=已婚|no)*p(年收入=120k|no)=0.7*4/7*4/7*0.0072=0.0024
p(yes)*p(有房=否|yes)*p(婚姻状况=已婚|yes)*p(年收入=120k|yes)=0.3*1*0*1.2*10-9=0
由于0.0024大于0,所以该记录分类为no。
从上面的例子可以看出,如果有一个属性的类条件概率等于0,则整个类的后验概率就等于0。仅仅使用记录比例来估计类条件概率的方法显得太脆弱了,尤其是当训练样例很少而属性数目又很多时。解决该问题的方法是使用m估计方法来估计条件概率:
http://blog.csdn.net/yan456jie/article/details/52649788