vlambda博客
学习文章列表

《统计学习方法》之朴素贝叶斯与生成模型

1



1

引言



在学习概率论的时候我们会遇到下面这种问题:

下面有两个盒子(可以看成是两类),Class 1中有蓝球3个,红球1个,Class 2中有蓝球1个,红球3个,假设现在我手中已经抽到了一个红球,问分别取自Class 1和Class 2的概率是多少:


在计算概率之前我们设随机变量X表示球的颜色(红色用1表示,蓝色用0表示),随机变量Y表示球的类别,我们的目标是求出   .


我们知道先验概率分布为:

   

条件概率分布为:

   

由贝叶斯公式和全概率公式我们可以计算出:

   

同样地我们也可以计算出这个红球出自Class 2的概率:

   


这个例子中可以看出一些贝叶斯估计的思想,当我们有一个实例x的时候,我们要对x进行分类,可以计算条件概率   来判断归为哪一类更加合理,如上例子中我们更有理由认为这个红球是属于Class 2的。



2

朴素贝叶斯的基本方法



我们设输入空间为   ,输出空间为   ,X和Y分别是定义在输入空间与输出空间上的随机变量。训练数据集合为:   ,朴素贝叶斯法就是通过训练数据学习联合概率分布   .

《统计学习方法》之朴素贝叶斯与生成模型

不同于判别模型直接由实例x根据后验概率最大化给出y,朴素贝叶斯模型实际上是算出了联合概率分布   ,对于每一个实例   和类别   ,我们都需要算出   来计算后验概率   ,选出概率最大的那一个,只不过在计算后验概率的过程中,我们使用贝叶斯公式和乘法公式,将联合概率转化成其他的形式。


假设我们知道先验分布   ,条件概率   ,对于条件概率我们有:

   

在上式中我们做了一个重要的假设,即条件独立性假设,我们假定X每个分量是条件独立的,也就是说在类别   确定的时候,用于分类的每一个特征是独立的。这一假定有利于减少计算的复杂度和计算量。假设每个特征的取值个数为   ,则一共有   个参数,再不做假设的情况下,很难得到 条件概率分布  


有了上述两个分布之后,我们就可以计算后验概率了,而这是我们将实例x进行分类的依据:

   


从上式可以看出,对于每一类   ,这个条件概率的分母都是一样的,所以比较概率大小的时候只需要比较分子就可以了。我们需要找到使得条件概率最大的   ,这样朴素贝叶斯模型就可以写成如下最优化问题:


   



3

后验概率最大化的含义



我们基于后验概率   获得了实例x的分类   ,这样做会有一定的风险即将x误分类了,我们希望模型尽可能的好,就需要我们做的分类尽可能准确,也就是总体损失或风险最小。这样我们就需要找到一个判断准则使得总体风险最小。


我们设分类决策函数是   ,0-1风险函数为:

   

表示我们的分类   与标识Y是否相同。这样就可以得到期望风险函数为:

   

这是对联合密度函数   求期望,对于离散情形,上式可以写成:

   

这样朴素贝叶斯法可以写成:    .

我们需要最小化总体风险,只需要在每个样本上选择那个使得条件风险最小,即对于每一个   ,使得下式最小:

   .


这样可以得到:

 

从这里就可以看出最小化总体风险(期望风险最小化)和最大化后验概率本质上是等价的。



4

朴素贝叶斯的参数估计



由上我们可以知道要计算后验概率的关键是知道分类的先验分布和条件分布,由大数定律可以知道我们可以用训练数据中的频率来作为概率的估计,这样我们可以得到朴素贝叶斯的参数估计如下:

   

条件概率的估计如下:

   


以上估计又可称为极大似然估计,但这种估计存在一个问题,那就是可能为0,例如,当训练数据集中没有类集合Y中的   ,那么就有   ,最终对于任意实例x,都不可能被分到   这一类,很有可能就影响分类的准确性。一个解决方法是使用贝叶斯估计:

   ;


   .

其中   ,   是特征向量X第j个特征可以取到的值得种类的个数。



5

朴素贝叶斯法的优缺点




1)朴素贝叶斯法原理简单,思想也很直观,易于实现;

2)计算后验概率是需要先验概率和条件概率的,一般这些都需要估计的,而这些可能会对分类结果产生误差;

3)个人认为朴素贝叶斯最大的问题是在条件独立假设这里,这个假设在很多数据中是不太可能满足的,很多数据的各个属性之间多多少少存在联系,不太可能做到独立,这就对使用朴素贝叶斯的数据有很高的要求,否则会牺牲分类的准确性,甚至得到有违直观判断的结果。



6

生成模型




(1)生成模型




朴素贝叶斯模型中,我们计算后验概率的过程中,是先计算了联合概率分布   ,继而计算出后验概率   ,这种模型被称为生成模型:由数据学习联合概率分布,然后求出条件概率分布作为预测的模型:

   


这种方法称为生成方法的原因是,在学习过程中给出了给定输入X得到输出Y的生成关系也就是联合概率分布   。



(2)判定模型




判定方法是由数据直接学习决策函数   或者条件概率   作为预测,中间不会给出联合概率分布   。