趣味理解朴素贝叶斯

2020-03-17 网络 网络

生活中很多场合需要用到分类,比如新闻分类、病人分类等等实际用用场景。为了让大家可以形象的理解,本文从实际的应用入手介绍一种简单的常用分类算法----朴素贝叶斯(Navie Bayes classifi

生活中很多场合需要用到分类,比如新闻分类、病人分类等等实际用用场景。为了让大家可以形象的理解,本文从实际的应用入手介绍一种简单的常用分类算法----朴素贝叶斯(Navie Bayes classifier)。

人分类的例子

让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。

症状 职业 疾病
打喷嚏 护士 感冒
打喷嚏 农夫 过敏
头疼 建筑工人 脑震荡
头疼 建筑工人 感冒
打喷嚏 教师 感冒
头疼 教师 脑震荡

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

P(A|B) = P(B|A) P(A) / P(B)
可得:
P(感冒|打喷嚏x建筑工人) 
    = P(打喷嚏x建筑工人|感冒) x P(感冒) 
    / P(打喷嚏x建筑工人)

假定"打喷嚏"和"建筑工人"这两个特征是独立的,因此,上面的等式就变成了

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

这是可以计算的。

P(感冒|打喷嚏x建筑工人) 
    = 0.66 x 0.33 x 0.5 / 0.5 x 0.33 
    = 0.66

因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。

 

这就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。

朴素贝叶斯分类器的公式

假设某个体有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)

上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。

虽然"所有特征彼此独立"这个假设,在现实中不太可能成立,但是它可以大大简化计算,而且有研究表明对分类结果的准确性影响不大。

账号分类

根据某社区网站的抽样统计,该站10000个账号中有89%为真实账号(设为C0),11%为虚假账号(设为C1)。接下来,就要用统计资料判断一个账号的真实性。

 C0 = 0.89
 C1 = 0.11

假定某一个账号有以下三个特征

F1: 日志数量/注册天数 
F2: 好友数量/注册天数 
F3: 是否使用真实头像(真实头像为1,非真实头像为0)
F1 = 0.1 
F2 = 0.2 
F3 = 0

请问该账号是真实账号还是虚假账号?方法是使用朴素贝叶斯分类器,计算下面这个计算式的值。

P(F1|C)P(F2|C)P(F3|C)P(C)

虽然上面这些值可以从统计资料得到,但是这里有一个问题:F1和F2是连续变量,不适宜按照某个特定值计算概率。一个技巧是将连续值变为离散值,计算区间的概率。比如将F1分解成[0, 0.05]、(0.05, 0.2)、[0.2, +∞]三个区间,然后计算每个区间的概率。在我们这个例子中,F1等于0.1,落在第二个区间,所以计算的时候,就使用第二个区间的发生概率。

根据统计资料,可得:

P(F1|C0) = 0.5, P(F1|C1) = 0.1 
P(F2|C0) = 0.7, P(F2|C1) = 0.2 
P(F3|C0) = 0.2, P(F3|C1) = 0.9

因此

P(F1|C0) P(F2|C0) P(F3|C0) P(C0) 
   = 0.5 x 0.7 x 0.2 x 0.89 
   = 0.0623
P(F1|C1) P(F2|C1) P(F3|C1) P(C1) 
   = 0.1 x 0.2 x 0.9 x 0.11 
   = 0.00198

可以看到,虽然这个用户没有使用真实头像,但是他是真实账号的概率,比虚假账号高出30多倍,因此判断这个账号为真。

性别分类

下面是一组人类身体特征的统计资料。

性别 身高(英尺) 体重(磅) 脚掌(英寸)
6 180 12
5.92 190 11
5.58 170 12
5.92 165 10
5 100 6
5.5 150 8
5.42 130 7
mv 5.75 150.9 9

已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?根据朴素贝叶斯分类器,计算下面这个式子的值。

 

P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)

这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办?这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。

有了这些数据以后,就可以计算性别的分类了。

 

P(身高=6|男) x P(体重=130|男) x P(脚掌=8|男) x P(男) 
    = 6.1984 x e-9
P(身高=6|女) x P(体重=130|女) x P(脚掌=8|女) x P(女) 
    = 5.3778 x e-4

可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。

版权声明:
本网站所有内容来源注明为“梅斯医学”或“MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有。非经授权,任何媒体、网站或个人不得转载,授权转载时须注明来源为“梅斯医学”。其它来源的文章系转载文章,或“梅斯号”自媒体发布的文章,仅系出于传递更多信息之目的,本站仅负责审核内容合规,其内容不代表本站立场,本站不负责内容的准确性和版权。如果存在侵权、或不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
在此留言
评论区 (1)
#插入话题
  1. [GetPortalCommentsPageByObjectIdResponse(id=1540327, encodeId=c5d6154032eee, content=<a href='/topic/show?id=9e0e929e4c8' target=_blank style='color:#2F92EE;'>#趣味#</a>, beContent=null, objectType=article, channel=null, level=null, likeNumber=31, replyNumber=0, topicName=null, topicId=null, topicList=[TopicDto(id=92974, encryptionId=9e0e929e4c8, topicName=趣味)], attachment=null, authenticateStatus=null, createdAvatar=null, createdBy=b0aa13204518, createdName=lilili1108, createdTime=Thu Mar 19 12:36:52 CST 2020, time=2020-03-19, status=1, ipAttribution=)]
    2020-03-19 lilili1108

相关资讯

Circulation:贝叶斯方法确认PCI能改善无保护左主干病变患者生存

    一些临床试验支持无保护左主干病变的患者接受冠脉搭桥治疗(CABG)。也有研究认为对此适应症经皮冠状动脉介入治疗(PCI)治疗和CABG有同等治疗作用,间接支持了2011年ACC/AHA指南对改善无保护左主干病变患者PCI治疗的IIa级推荐。研究人员采用贝叶斯方法验证是否支持这一新治疗建议。该文发表在2013年6月4日的Circulation杂志上。 

分类算法之朴素贝叶斯(Naive Bayes)介绍

作者:程Sir我个人认为,在数据挖掘领域,分类算法是最为重要。它根据以往的数据来对新的数据做预测。垃圾邮件判断,潜在用户挖掘等都会用到分类算法。今天把总结朴素贝叶斯算法的学习心得。#Bayes是谁#Thomas Bayes,英国数学家。约1701年出生于伦敦,做过神甫。1742年成为英国皇家学会会员。1761年4月7日逝世。贝叶斯在数学方面主要研究概率论。他首先将归纳推理法用于概率论基础理论,并创

机器学习里的贝叶斯基本理论、模型和算法

本文转自中国人工智能学会通讯第3期,已获授权,特此感谢!  作者:清华大学计算机科学与技术系 朱军 副教授 非常感谢周老师给这个机会让我跟大家分享一下。我今天想和大家分享的是,在深度学习或者大数据环境下我们怎么去看待相对来说比较传统的一类方法——贝叶斯方法。它是在机器学习和人工智能里比较经典的方法。 类似的报告我之前在CCF ADL 讲过,包括去年暑假周老师做学术主任在广州有过

白话讲解:贝叶斯理论中的马尔可夫链蒙特卡洛方法

梅斯医学注:马尔可夫链蒙特卡洛方法在医学中应用很多,如药物经济学经常采用这种模型。另外,一些人工智能的影像智能识别也采用类似的算法,但是毕竟太难。本文采用白话解读,让大家能读懂如此高深的内容! 作者 | Ben Shaver  翻译 | 刘畅 大多数时候,贝叶斯统计在结果在最好的情况下是魔法,在最糟糕时是一种完全主观的废话。在用到贝叶斯方法的理论体系中,马尔可夫链蒙特卡