分类算法 - 朴素贝叶斯

  朴素贝叶斯(Naive Bayesian)是基于贝叶斯定理和特征条件独立假设的一种分类算法。朴素贝叶斯想必是很多人在刚学习机器学习时想去第一个学习的算法,因为它朴素呀、简单呀(我记得当时的想法就是这样)。它真的那么简单么?今天我们就来讨论一下这个“简单”的机器学习算法。

贝叶斯定理

  我们都知道贝叶斯定理是基于条件概率得来的,那么什么是条件概率呢?条件概率就是在我们知道一个事件发生的情况下,别一个事件发生的概率(突然下雨了,你会去估计你女神有没有带伞,这就是一个条件概率)。它的数学表示如下:

      

有了条件概率贝叶斯先生就开始寻思了,如何我知道了在B的条件下A的发生概率,能不能反推出呢?这时候贝叶斯定理就诞生了:

      

条件独立

  朴素贝叶斯还有一个特征条件独立的要求,那么什么是条件独立呢?我们知道如果两个事件独立指的是一个事件的发生不会影响到别一个事件发生的概率,数学上的表示就是:

      

条件独立就是基于事件独立提出的,我的理解为条件事件独立,不知准不准确? 它要求的不是事件绝对独立了(A、B可以不独立),但是呢,两个事件都加一个限制条件的话,我们就要求它们独立了(一定是独立的),其数学表示为:

      

朴素贝叶斯

  这“朴素”两字代表什么呢?真的代表“简单”的意思么?如果你真这么想,一阵冷笑,呵..呵..呵..(前段面过某直播平台,就问了这个问题,我就说是简单的意思,结果就是一声冷笑...)。其实之所以叫“朴素”贝叶斯是因为它假设分类项的各个属性都是相互独立的!明白了这事我们再来看看朴素贝叶斯算法的执行过程吧。

  朴素贝叶斯的思想也是非常简单:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,那个概率值大就认为该分类项属于哪一类,其定理定义如下:

  (1) 设 为待分类项,而每个为输入x的一个特征属性。

  (2) 设为一个类别集合。

  (3)计算

  (4)如果,则

上面定义的关键步骤还是步骤3的求解,这步的求解就用到了朴素贝叶斯的两大基础:贝叶斯公式和特征条件独立假设,具体求解过程如下:

  1) 给定一组训练数据集,用于训练参数。

  2) 统计得到在每种类别下各个特征属性的条件概率估计。(这一步使用极大似然估计或者贝叶斯估计)

     

  3) 根据贝叶斯公式有以下推导:

      

   依据全概率公式可知,对于所有类别来说为一个常数(全概率公式的定义可以看最后的补充部分)。因此我们只需要比较每一类的,哪个值最大,待分类项就是哪一类!因为我们有特征条件独立的假设,因此可以使用条件独立公式求解:

      

 说到这,朴素贝叶斯算是讲完了,等等。。。还有上面提到的参数估计方法,好吧,下面我们稍微提一下吧。

参数估计

  朴素贝叶斯通过求解的值来判断待分类项的类别,上式中的有两个关键部分是需要我们求解的。他们的求解(估计)可以通过极大似然估计和贝叶斯估计来进行。

极大似然估计

        

其数学表示为

    

贝叶斯估计

  用极大似然估计可能会出现所要估计的概率值为0的情况,这样会影响到后验概率的计算结果,使得分类产生误差。解决这一问题的方法是采用贝叶斯估计。

    

这其实就等价于在随机变量各个取值的频数上赋予一个整数是指类别k中,第j个特征取值的个数。lambda等于1是拉普拉斯平滑。

。。。(这一部分讲的不好,推荐大家看看李航老师的统计学习方法一书)。。。

朴素贝叶斯的三种模型

  (1)认为服从多项式分布的多项式模型

  (2)认为服从高斯分布的高斯模型

       

  (3)认为服从伯努利分布的伯努利模型

 

朴素贝叶斯的优缺点分析

  优点:算法逻辑简单,易于实现;适用于多分类;算法稳定,对于不同的数据特点其分类性能差别不大,健壮性比较好;

  缺点:对输入数据的表达形式很敏感;

补充部分

全概率公式:

  对一个较复杂的事件A,如果能找到一伴随A发生的完备事件组B1、B2```,而计算各个B的概率与条件概率P(A|Bi)相对又要容易些,这时为了计算与事件A有关的概率,可能需要使用全概率公式。

  

posted @ 2017-11-07 16:06  ML小菜鸟  阅读(1661)  评论(0编辑  收藏  举报