美文网首页数据算法
机器学习算法-贝叶斯算法

机器学习算法-贝叶斯算法

作者: 明翼 | 来源:发表于2017-10-19 20:54 被阅读15次

    作为初学者,本文很多都是是看过网上文章之后自己的理解,图片和内容借鉴很多网上知识,不能算是完全的原创,若对您造成了侵权,请联系我,我再修改。
    我写的算法理解比较粗浅的,争取真正人人都可以看的懂的。
    转自:http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
    转自:http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

    基本概念

    概率(Probability):0-1之间的数字,表示事件发生的可能性。

    几率(Odds):特定结果发生和不发生的比例,0到无穷大,比如今天下雨的概率为0.1 不下雨的概率为0.9 ,那么下雨的几率为:0.1/0.9 = 1/9。

    条件概率:在特定条件下事件发生的概率。
    如P(A|B)表示为在B事件发生的条件下A事件发生的概率

    似然(Likelihood):两个相关条件概率比值,给定B情况下A发生的几率和A的整体几率之比。

    韦恩图

    图中整个长方形标示随机事件发生的一切结果,A圆圈标示A事件发生的概率,概率用P标示。

    • A事件与B事件同时发生的概率表示为P(A∩B),或简写为P(AB)即两个圆圈重叠的部分。
      A不发生的概率为1-P(A),写为P(~A),即矩形中除了圆圈A以外的其他部分。

    • A或者B至少有一个发生的概率表示为P(A∪B),即圆圈A与圆圈B共同覆盖的区域。

    • 在B事件发生的基础上发生A的概率表示为P(A|B),这便是我们前文所提到的条件概率,图形上它有AB重合的面积比上B的面积。

    那么条件概率P(A|B) = P(AB)/P(B)

    P(AB) = P(A|B)P(B) 条件概率 总的可能的 A和B相交的概率。
    P(BA) = P(B|A)P(A) 把AB替换下,也好理解。
    得到:
    P(A|B)
    P(B) = P(B|A)P(A)
    然后 P(B|A) = P(A|B)
    P(B)/P(A)
    这就是贝叶斯公式,很简单吧。:)

    贝叶斯公式可以做什么?

    贝叶斯公式可以用在求事件发生的概率,也许你会问求概率有什么用那? 有用,那就是可以作为分类器使用。
    举个例子某个有n项特征(Feature),分别为F1、F2、...、Fn。
    现在有m个类别(Category),分别为C1、C2、...Cm。
    贝叶斯分类器就是计算出概率最大的那个分类,也就是求:

    P(C|F1F2...Fn) = P(F1F2...Fn|C)P(C)/P(F1F2..Fn)

    由于P(F1F2..Fn)对于所有的类别都是相同的,可以省略,问题就变成了求:

    P(F1F2...Fn|C)P(C)

    的最大值,这概率的最大值即为得出的类别。朴素贝叶斯分类器则是更进一步,假设所有特征都彼此独立,因此

    P(F1F2...Fn|C)P(C) = P(F1|C)P(F2|C)...P(Fn|C)P(C)

    其实各个特征在现实中不一定是彼此独立的,所以其使用具有限制,但是它可以大大简化计算,而且有研究表明对分类的准确性影响不大。

    阮一峰前辈的文章中的例子做说明,提供一组数据。

       症状  职业   疾病
    

    打喷嚏 护士   感冒
    打喷嚏 农夫   过敏
      头痛  建筑工人 脑震荡
        头痛  建筑工人 感冒
      打喷嚏 教师   感冒
       头痛  教师   脑震荡

    现在又来了第七个病人,是打喷嚏的建筑工人,请问他患上感冒的概率有多大?
    根据贝叶斯公式:

    P(A|B) = P(B|A)P(A)/P(B)

    可得

    P(感冒|打喷嚏建筑工人) = P(打喷嚏建筑工人|感冒)* P(感冒)/P(打喷嚏*建筑工人)

    继续推导:
    P(感冒|打喷嚏*建筑工人) = P(打喷嚏|感冒)×P(建筑工人|感冒)×P(感冒)/P(打喷嚏)P(建筑工人)
    = 0.66 ×0.33×0.5/0.5×0.33
    = 0.66
    这些数字是从上面表推出的,P(打喷嚏|感冒) = 2/3 3个感冒的人中有2个打喷嚏。

    贝叶斯分类对连续值怎么做?

    性别分类的例子,仍然从网上抄个例子。

    男女数据统计资料

    一个人身高6英尺、体重130磅,脚掌8英寸,问该人是男是女?

    根据朴素贝叶斯分类器,计算下面:

    P(身高|性别)×P(体重|性别)×P(脚掌|性别)×P(性别)
    由于身高、体重、脚掌大小均是连续变量,不能采用离散变量的方法来计算概率。假设这些是正态分布,通过样本计算出均值和方差,也就得到正态分布的密度函数,从而计算出密度函数的值。

    比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。

    image.png

    相关文章

      网友评论

        本文标题:机器学习算法-贝叶斯算法

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