美文网首页机器学习事例
机器学习实战-朴素贝叶斯分类算法

机器学习实战-朴素贝叶斯分类算法

作者: 笨笨的简书 | 来源:发表于2018-07-23 18:06 被阅读69次

    1、背景

    我们其实无时无刻不在使用朴素贝叶斯分类算法,只是没有觉察到而已。比如在晚上走在灯光暗淡的路上,前面出现一个人影。可能是男/女的概率分别是50%。但假如能看出其头发为长发时,你可能会猜这个人是女生的概率为90%。这就是朴素贝叶斯算法的简单应用。

    2、贝叶斯概率公式

    (1)条件概率:

    条件概率

    由以上文氏图来理解条件概率的定义:就是指在B事件发生的情况下,事件A发生的概率,表示为P(A|B),由图得出条件概率的计算公式为:P(A|B)=P(AB)/P(B)。

    (2)乘法公式

    由条件概率公式可得:P(AB)=P(A|B)P(B)=P(B|A)P(A) ,这就是乘法公式,其推广的形式为 P(A1A2...An-1An)=P(A1)P(A2|A1)P(A3|A1A2)...P(An|A1A2...An-1)(N>=2)

    (3)全概率公式

    继续文氏图:

    全概率公式

    图中A、A'是互斥事件,且共同构成样本空间S。那么B则可通过如下表达取得:P(B)=P(BA)+P(BA'),再由刚才的乘法公式得:P(B)=P(B|A)*P(A)+P(B|A')*P(A')

    正式的表达为:假设B1、B2...为互斥事件,且B1UB2...为S,则成为B1、B2...为样本空间S的一个划分,则全概率公式表达为:对于任意事件A

    全概率公式

    理解:全概率公式的意义是,当计算一个随机事件A的概率时,可通过将A分割来计算。分割不是随机的,而是在一个划分B1、B2...中分割成AB1、AB2...,从而A=AB1+AB2+...,再由加法公式得:P(A)=P(AB1)+P(AB2)+...=P(A|B1)P(B1)+P(A|B2)P(B2)+...+P(A|Bn)P(PBn)

    例如:某车间用甲、乙、丙三台机床进行生产,各台机床次品率分别为5%,4%,2%,它们各自的产品分别占总量的25%,35%,40%,将它们的产品混在一起,求任取一个产品是次品的概率。 解:设.....     P(A)=25%*5%+4%*35%+2%*40%=0.0345

    (4)贝叶斯概率公式的理解

    贝叶斯概率公式

    这是上述条件概率公式的一个变形表达,其中P(A)成为先验概率,即在事件B发生之前,事件A的概率判断,或者事件A其实是事件B发生的原因;而P(A|B)称之为后验概率,即在事件B发生之后,我们再对导致事件B发生的原因A分析的重新评估。另外:P(B|A)/P(B)称之为“可能性函数”,是一个调整因子,使得预估的概率更加接近于真实的概率。

    即:后验概率 = 先验概率 x 调整因子

    所以贝叶斯公式的理解就是:先计算一下先验概率,再集合实验结果,形成调整因此,看实验是增强还是削弱先验概率,从而使得更接近真实概率的后验概率。如果调整因子>1,则先验概率被增强,事件A发生的概率更大;如果=1,则事件B的发生,无助于对先验概率的判断;如果<1;则先验概率被削弱,事件A发生的概率变小。

    3、贝叶斯公式如何应用于分类?

    再回刚才通过人影识别男女的例子,我们来理解如何用贝叶斯公式来实现分类。

    (1)假如

    待分类项别

    是一个待分类的项,其中a是各个属性。就好比x是一个人影,具有如下特征,长发,身高165等等;

    (2)

    类别集合

    C为类别结果集,比如男、女

    (3)

    后验概率

    需要计算再x事件(人影)情况下,属于类别y1、y2(男、女)的概率分别是多少;

    (4)

    最大的概率

    计算的概率最大的值,就是最接近事实的概率值。

    (5)计算

    贝叶斯公式

    P(X)针对于各个类别的y都是相同值,因此在求最大值时可忽略计算,因此只需计算分子即可。又由于x的各个属性在朴素贝叶斯定义下是互斥的,因此分子由可表达为

    分子

    从而只需要计算各个属性在各个类别中的概率P(aj|yi)即可。

    (6)调整

    上述分子的公式其实是M+1个概率值相乘,概率是0-1范围的一个值,M+1个值相乘很有可能是一个极小的值,因此需要做一些调整才方便计算。

    这种情况通常就是取log,反正只是求最大值,而不是取真实的值,而log又是递增函数,因此不会影响取最大值的范围。从而就把计算乘法转为了计算m+1个值的加法。

    4、文本分类的应用

    《机器学习实战》这本书给出的简单例子就是用朴素贝叶斯算法来区分文本属于侮辱、文明的分类,例如:

    文本分类

    这是六个帖子提取的分词,且已分好类别。当给出另一个文本时,可通过这个文本,结合贝叶斯算法给出文本的分类。

    通过刚才计算分子的分类,在这里分类空间y为{侮辱、正常},x为单词的集合。因此,P(aj|yi)就是一个分类中,没个单词出现的概率。具体的程序请参考和查询该书。

    5、补充

    所以利用朴素贝叶斯算法基本流程就是:

    流程

    其具备有点:在数据量较少仍然有效,计算相对简单,对多分类仍有效。缺点:对数据类型、准备相对苛刻,属较多时运算量大等问题。

    相关文章

      网友评论

        本文标题:机器学习实战-朴素贝叶斯分类算法

        本文链接:https://www.haomeiwen.com/subject/pqdjmftx.html