码迷,mamicode.com
首页 > 其他好文 > 详细

初探NO.3—从头到尾聊聊贝叶斯的分类方法

时间:2015-02-12 09:25:16      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:机器学习   分类问题   贝叶斯分类算法   统计学   

  宅在家无聊之余决定看着《概率论和数理统计》&《统计学习方法》总结一下朴素贝叶斯和贝叶斯估计。

 

  正好这一块我最近温习了一下,我从一开始条件概率开始写,把我所理解的贝叶斯分类算法完整呈现一下吧。

 

  学的概率论最开始是在高中,当时是条件概率,给出条件概率的定义:事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。

 

  其次我们有必要温习一下乘法定理,乘法定理的定义:设P(A)>0,则有P(AB)=P(B|A)P(A)。

 

  说完这些最基础的之后,就开始接触全概率和贝叶斯公式了。

 

  全概率公式为:如果事件B1、B2、B3…Bn 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Bi)大于0,则对任一事件A用下图表示:

                                                                  技术分享

  百度说全概率公式为概率论中的重要公式,它将对一复杂事件A的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。

 

  下面是最重要的贝叶斯公式了,贝叶斯公式定义:设实验E的样本空间为S,A为E的事件,B1,B2,B3.....Bn为S的一个划分,切事件的概率都大于0,于是贝叶斯公式表示如图:

                                                    技术分享

  这个可能初学者有点复杂,在这里我分享一下我当时的记忆方法:就是利用乘法定理,既然

P(AB)=P(B|A)P(A),那么P(AB)=P(B|A)P(A)=P(A|B)P(B).这样我可以把后面的两个相等的部分变成如图:

                                                            技术分享

下面就很简单了,对下面的P(A)进行全概率公式的分解,不就变成了贝叶斯公式啦。貌似这也是证明过程,不过我觉得这么做确实记得住,如果大家这些东西搞明白了,那么咱们就开始初探贝叶斯这一套分类算法吧。

 


  首先,它和之前的决策树,逻辑回归直流差不多,都是一种学习—预测算法,训练集合需要输入这一个item的特征向量x,还需要类标记y。如果都是随机的,那么我们的训练集表述为:

                                                    技术分享

 朴素贝叶斯通过训练数据集学习联合概率分布P(X,Y).具体地,学习以下先验概率分布及条件概率分布,先验概率分布:

                                                     技术分享

条件概率分布:

                                 技术分享

  不过这里我解释一下先验概率,先验概率是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现。其实四个字以蔽之—古典概型,哈哈哈是不是都懂了~

 

  朴素贝叶斯对条件概率分布作了条件独立的假设。具体地,条件独立性假设是

                               技术分享

  李航先生在书中写到一段话:条件假设等于说用于分类的特征在类确定的条件下都是条件独立的,这一假设使得朴素贝叶斯变得简单,但有时会牺牲一定的分类准确率。因为我没做过专门的实验,不知道什么意思,如果有前辈指导其中的含义,请赐教~

 

  接着,我们就可以利用贝叶斯进行分类了,怎么做呢?对于给定的输入x,通过学习到的模型计算后验概率分布P(Y=c|X=x),将后验概率最大的类作为x的类输出,后验概率计算根据贝叶斯定理,得出的结论有下图:

                                  技术分享

 这是朴素贝叶斯的基本分类公式,那么朴素贝叶斯的分类器可以表示为:

                                     技术分享

注意到,分母上面c都是相同的,所以

                                   技术分享

好了,说到这里,我们已经把朴素贝叶斯用到的所有的公式都说完了,最后再把朴素贝叶斯的流程梳理一下:

 

1 计算先验概率以及条件概率

                                    技术分享

2 对于给定的实例进行计算,实例和计算如图:

                                    技术分享

 

3最后决定实例的类别:

                                技术分享

  看这些公式有点复杂,我们看一个具体的计算过程。这里我推荐一篇博客,地址是:

http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html

大家可以从这里找到几个利用朴素贝叶斯的应用例子,相信会有很大的帮助的。

 

  可是大家有没有想到了一个问题,刚才我们讨论的是概率都是大于0的情况,如果要是出现概率等于零的情况,那么技术分享

计算结果肯定为零了,这样如果只有一个特征为零其中特征都匹配的情况出现分类的结果是不公平的,那么我们解决这一问题的方法就是采用贝叶斯估计,给出条件概率的贝叶斯估计:

                                技术分享

这样相当于随机变量在树枝上面都赋予一个正数,当λ=0,那么就和上面的贝叶斯估计一样了,也是符合极大似然估计。但是常取,λ=1,这时称为拉普拉斯平滑。同样的先验概率的贝叶斯估计是:

                                技术分享

  恩恩~这样贝叶斯理论这里差不多就梳理到这里了,后面有贝叶斯网路,我研究研究也会Po出来,另外,还要坚持边看理论边落实代码,下一期梳理一下贝叶斯有关的代码。

  

  最后呢,今天是农历的小年,Leo先祝大家新年快乐,阖家团圆,万事如意~

 

  

 

 

 

 

初探NO.3—从头到尾聊聊贝叶斯的分类方法

标签:机器学习   分类问题   贝叶斯分类算法   统计学   

原文地址:http://blog.csdn.net/leo_is_ant/article/details/43741261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!