朴素贝叶斯有多“朴素”?

机器学习算法与Python实战

共 7226字,需浏览 15分钟

 ·

2022-01-19 21:09

导读:如果有一天,我们知道的统计规律和现实生活发生了冲突,又或者前人的经验不符合亲身经历,那么该怎么办?面对经验与现实的矛盾,我们需要一种应对方案。

作者:徐晟 来源:大数据DT(ID:hzdashuju)



假设你正在玩抛硬币猜正反的游戏。游戏看上去很公平,没有人在干预硬币结果,硬币看上去也像是普通的硬币。对于即将开始的下一局,请问你该如何下注?

理论上讲,硬币在落地后得到正面和反面的概率是一样的,所以你可以随便猜,总会猜对一半。但那毕竟是理论,你无法确保眼前的这枚硬币也是如此。更何况,你无法提前抛足够多次这枚硬币,来验证你的假设。

那该用怎样的下注策略呢?答案是根据历史信息来决定。比方说,已经抛了10次硬币,其中有8次正面朝上。就是说通过10次实践,硬币正面朝上的概率是80%。虽然这个概率和它的理论值(50%)比可能有偏差,但它仍然是下注的重要参考。如果还有第11次抛硬币,你就应该去猜正面朝上。

更极端点,如果硬币扔了一亿次都是正面朝上,那下一次反面朝上的概率是多少?我们能否坚信它是一枚特殊硬币呢?不能。虽然下一次硬币反面朝上的概率无限接近于零,但它不等于零。只要没有对硬币做出更进一步的确认,无论扔多少次,我们都无法排除反面朝上这个选项,只能无限降低对它的可能性的预期。

大部分人都是根据历史经验不断修正自己的认知。毕竟我们不是先知,不能提前知道所有事件发生的概率。这种思考方式具有现实意义,它背后的数学原理是贝叶斯定理。



01 什么是贝叶斯定理

预测在生活中必不可少,比如决定是否购买更多的股票、预测某个球队是否获胜、确定下个月是否外出旅游等。要做出准确的预测,不仅需要得到某个事件发生概率的理论值,还要结合实际经验做出合理判断。

换句话说,人对某一事件未来会发生的认知,大多取决于该事件或类似事件过去发生的频率。这就是贝叶斯定理的数学模型,它最早由数学家托马斯·贝叶斯提出。

贝叶斯生活在18世纪,他的本职工作是一位英格兰长老会的牧师。1763年,他发表了论文《论有关机遇问题的求解》,提出了一种解决问题的框架思路,即通过不断增加信息和经验,逐步逼近真相或理解未知。这种思想奠定了贝叶斯理论的基础。

贝叶斯定理的过程可以归纳为:“过去经验”加上“新的证据”得到“修正后的判断”。它提供了一种将新观察到的证据和已有的经验结合起来进行推断的客观方法。

假设有随机事件A和B,它们的条件概率关系可以用以下数学公式表达:


  • 其中,事件A是要考察的目标事件,P(A)是事件A的初始概率,称为先验概率,它是根据一些先前的观测或者经验得到的概率。
  • B是新出现的一个事件,它会影响事件A。P(B)表示事件B发生的概率。
  • P(B|A)表示当A发生时B的概率,它是一个条件概率
  • P(A|B)表示当B发生时A的概率(也是条件概率),它是我们要计算的后验概率,指在得到一些观测信息后某事件发生的概率。

贝叶斯公式给出了通过先验概率和条件概率求出后验概率的方法。举个例子,我们假设A事件代表堵车,B事件代表下雨,并且已知以下数据:

某天下雨的概率是40%,即P(下雨)=0.4。
上班堵车的概率是80%,即P(堵车)=0.8。
如果上班堵车,则这天是雨天的概率有30%,即P(下雨|堵车)=0.3。

那么,我们就能求出下雨天上班堵车的概率:

P(堵车|下雨)
= P(堵车)×P(下雨|堵车) ÷P(下雨)
= 0.8×0.3÷0.4
= 0.6

这个计算并不复杂,但蕴含着深刻的含义。有时,先验概率很容易得到,但对于不同的条件概率,其计算难度差别很大。比如医生可以在心脏病人中统计男女占比,但很少会在只知道对方性别的情况下诊断对方得心脏病的概率。

另外,根据贝叶斯公式,先验概率一般是由以往的数据分析或统计得到的概率数据。后验概率是在某些条件下发生的概率,是在得到信息之后再重新加以修正的概率。也就是说,后验概率可以在先验概率的基础上进行修正并得到。

1. 贝叶斯派和频率派

基于贝叶斯的思考方式几乎无时无刻不在发生。

人通常很少做出绝对的判断,但会做出相对可信的推断,并根据新的证据不断更新之前的结论。比方说,没有一个程序员能保证自己写出来的代码没有任何缺陷。但是我们可以对它进行大量验证,每通过一项测试,我们就更有把握确保这段代码的质量。

贝叶斯派的世界观中,概率是被解释为人们对一件事情发生的相信程度,也就是信心。假设你不确定一件事情的发生概率,但你知道一定存在这个概率值,于是你开始不断重复做试验,并记录下每次的结果。

刚开始时,得到的后验概率是不稳定的。但随着试验次数的增加,观测值的出现概率会越来越接近它的真实概率值。在这个过程中,我们不是从随机性里推断出确定性,而是保留了不确定性。这是贝叶斯派的思考方式。

不过,持有频率派观点的人对概率有另一种解释。他们认为概率是事件在长时间内发生的频率,也就是发生次数。比如,汽车事故发生的概率,可以认为是一段时间内发生车辆事故的次数。

不过人们发现,这个定义不适用于一些特殊情况,尤其是只会发生一次的事件。试想一下,选举时我们讨论某个候选人的获选概率,但选举本身在未来只会发生一次,永远得不到多次选举的数据。

为了解决这个矛盾,频率派提出了“替代现实”的说法,套用今天物理学里的概念就是平行宇宙,频率派认为概率是所有平行宇宙中发生的频率。

有时,把概率理解为信心或频率并不影响结果。比如一个人对汽车事故发生的信心就等同于他了解到的汽车事故的频率。但有时,用贝叶斯派的观点来解释概率显得更加自然。比如大会选举的例子,贝叶斯派不用考虑什么平行宇宙,只要考虑对候选人的获胜信心,把它当作选举成功的概率,这种理解具有现实意义。

贝叶斯派认为概率代表了个人观点,每个人都能给出自己认定的事件概率,它因人而异,没有唯一的标准。某人把概率0赋予某个事件,表明他完全确定此事不会发生;如果概率是1,则说明他确信此事一定会发生。概率值在0和1之间,表示他心目中此事发生的可能性。

这种观点为人与人之间的认知差异保留了余地。每个人拥有不同的信息、认知、判断,这些差异导致了不同的人对同一事件发生有着不同的信心,这并不代表别人就是错的。比如我在抛硬币后偷看了结果,我就能确定某个结果出现的概率是1。显然,我获得的额外信息并不会改变硬币本身的结果,但会使我和别人对结果赋予不同的概率值。

在贝叶斯派看来,对一个事件发生的信心等同于概率。这似乎是人们长期以来和现实世界打交道的方式。很多情况下,人们只能了解部分真相,但可以通过不断收集证据来修正自己的观念。

频率派和贝叶斯派在考察不确定性时的出发点各不相同。频率派认为事件本身具有某种客观的随机性,而贝叶斯派认为这不是事件的问题,而是观察者不知道事件的结果。观察者对事件了解得越多,拥有的证据越多,他对事件的判断就越准确。


2. 贝叶斯推断与应用

基于贝叶斯的推理与应用为何这些年来广为流传,为人津津乐道?答案是因为大数据。过去没有大数据,所以先验概率很难获得。这些年来,很多数据被人们积累下来,贝叶斯模型的运用领域也越来越广泛。

比如在一些语言翻译的网站、医疗诊断的仪器中,就会用到贝叶斯的统计方法。还有在电子邮件软件中,也集成了基于贝叶斯方法的垃圾邮件过滤功能。

贝叶斯定理告诉我们,即便获得了新的证据,也不要完全放弃初始的信念。新的证据会让我们对某些结果更有信心,或帮助我们修正初始信念的错误。

就是说,我们既要关注新的证据,又不能忽略初始信念。新的证据很重要,因为初始信念可能是错的,这些证据可以用于做出修正。但同时,初始信念仍然是重要的基础,不能只根据新证据就草率地做出判断。关于这一点,让我们来举些例子。

假设中年妇女有1%的概率患有乳腺癌。有一台医疗设备能检验女性胸部肿瘤。根据已有检测数据,这台设备有80%的概率能正确诊断出乳腺癌。但对于健康女性,它也有10%的概率做出误判。现在假设有一位妇女的检查结果呈阳性,她被查出患有乳腺癌,那么她真正得癌的概率是多少?

大部分医生认为既然设备已经检查出了阳性,这位女性患有乳腺癌的概率就该很高,他们给出的答案通常在75%左右。但实际上,这个答案被高估了10倍。

贝叶斯定理告诉我们,1%的先验概率,不会立刻变成75%的后验概率,它只会增加到7.5%。很多医生往往过于强调设备的准确率,认为检查结果呈阳性,这位妇女患乳腺癌的概率就应该和设备的准确率差不多,在80%左右。

但这种直觉判断是错的。我们必须把更多的注意力放在患乳腺癌的女性的初始比例(即先验概率)以及健康女性是假阳性的概率上。因为健康女性的占比远高于患乳腺癌的人,所以她们被误诊为阳性的可能性也更大,这个数据不能轻易忽视。

再比如,假设一个盒子里放了很多球,其中红球占85%,绿球占15%。有人从盒子中拿出一个球,这个人有色弱,假设他分辨颜色的准确率是80%。如果这个人说这是一个绿球,那么这个球是绿色的概率是多少呢?

让我们来做一次计算:由于红色的球被看成是绿色的概率是85%×20%,绿色的球被看成是绿色的概率是15%×80%,所以这个球是绿色的概率是0.15×0.8/(0.85×0.2+0.15×0.8)=41.38%。

也就是说,尽管这个人看到的是绿球,而且他分辨颜色的准确率达到80%,因为绿球本身的基数小,所以这个球是红球的可能性更大。

通过上面两个例子,我们可以发现,当先验概率足够强大时,即使出现新的证据,先验概率也会表现出惊人的影响力。这给我们的启示是,不能只把焦点放在最新获得的信息上,同时要关注全局,考虑先验概率这个重要前提。



02 朴素贝叶斯有多“朴素”

贝叶斯定理研究的是条件概率,也就是在特定条件下发生的概率问题。基于这一数学思想,人们提出了一种叫作朴素贝叶斯的算法。

朴素贝叶斯常用于解决分类问题,它的目的是把具有某些特征的样本划分到最可能属于的类别中。也就是说,样本属于哪个类别的概率最大,就认为它属于哪个类别。

该算法已经被用在邮件分类、文章分类、情感分析等很多应用场景。以邮件分类为例,算法通过统计邮件内容中单词出现的频率,对邮件做出判断,比如发现了“扫码”“汇款”等特定词高频出现,那么就判断这封邮件疑似垃圾邮件。

既然叫作朴素贝叶斯算法,那它到底“朴素”在哪儿?

使用朴素贝叶斯算法要满足一个基本假设:假定给定目标值的各个特征之间是相互独立的,即条件独立性。举个例子,“鹦鹉会飞”和“鹦鹉会学人说话”这两个短语是条件独立的,因为它们之间没有必然联系。

而“鹦鹉会飞”和“鹦鹉是鸟”就不是条件独立的,它们之间具有关联:鹦鹉是鸟,所以它能飞;或者因为鹦鹉会飞,所以它才被叫作鸟。总之,这两个短语彼此影响,“鹦鹉会飞”影响了“鹦鹉是鸟”的结论,“鹦鹉是鸟”又导致了“鹦鹉会飞”,它们不是条件独立的。

朴素贝叶斯算法为何要设置条件独立的前提呢?这是因为,如果每个特征不是相互独立的,在计算条件概率时,就必须把这些特征的所有排列组合都考虑一遍。这样不仅计算量大,还会产生指数级的参数数量,实际执行起来难度很大。

下面我们以文本分类为例,看看朴素贝叶斯算法的具体运作过程。

首先,确定不同特征条件下各类别的出现概率。比如要判断一篇文章是经济类文章还是体育类文章,可以把这个问题转化为:当出现“银行”“贷款”等特定词语时,这篇文章属于经济类的概率更高,还是属于体育类的概率更高?

其次,省略计算全概率。由于只是比较概率大小,因此不必计算每个特征出现的全概率。根据贝叶斯公式,全概率对所有类别都是同样的分母,比较时可以忽略。即,对于任意一篇文章,出现“银行”的概率有多大,含有“贷款”的概率又是多少,可以不必统计。

最后,也是朴素贝叶斯算法最核心的思想:假设各个特征是条件独立的。这样只要计算每个特征的条件概率,然后相乘比较,就能得出结论。就是说,不用考虑文章中“银行”“贷款”这些词语之间是否有关联(实际上它们很可能是有关联的),只要计算每个词语的条件概率即可。

在这个例子中,假设待分类的文章中出现过“银行”“贷款”这样的词语。而我们已经有一些经济类和体育类的文章样本,可以事先统计出不同文章出现不同词汇的概率。现在要判断手上这篇文章到底是经济类文章还是体育类文章,可以计算以下两个“分数”。

分数1= (一篇文章是经济类文章的概率)×(经济类文章出现“银行”的概率)×(经济类文章出现“贷款”的概率)
分数2= (一篇文章是体育类文章的概率)×(体育类文章出现“银行”的概率)×(体育类文章出现“贷款”的概率)


如果分数1大于分数2,这篇文章就更有可能是经济类文章,反之,则认为它是体育类文章。

当然,运用朴素贝叶斯算法还需要一些“技巧”。比如,算法要避免出现某个概率是0的情况。假设基于手上已有的学习样本,经济类文章恰巧没有出现过“银行”这个词,这时得到的(经济类文章出现“银行”的概率)就是0,这就出了问题,因为只要有0的存在,总得分就一定是0,这会放大不常见单词对结果的影响。

因此,有时会为每个词的出现次数设定一个很小的初始值,以防止那些不存在的样本对总体概率造成影响。

针对文本处理,尽管不同单词之间存在联系,每种语言也有它特定的语法规则,但朴素贝叶斯选择忽略这些关联性。这个“朴素”的假设使得计算过程大幅简化,而从实践来看,结论通常不会有过大的偏差。

这就是朴素贝叶斯的“朴素”思想,它人为给了一个非常强的前提假设。由于这一假设,模型包含的条件概率数量大幅减少,朴素贝叶斯算法的预测过程也大为简化。当然,这么做也在一定程度上牺牲了分类准确性。



03 每个人都懂贝叶斯

贝叶斯定理虽然只是一个数学公式,但其内涵已远远超出了公式范畴。它告诉我们,要从不同角度去思考已有的想法,以不同的方式来检验它们,通过实践不断调整对问题的假设和看法。

贝叶斯定理提供了一种看待事物的全新视角。在一个不确定的环境下,每条信息都会影响原来的概率假设,需要根据最新的信息更新和改进决策,直到决策者从一切都不确定的状态变成可以坚定信心的状态。

人的认知过程或许就是如此。人类一直在探索和掌握新的知识,在这个过程中,一些知识被修正,错误的观念被丢弃。

“燃素”就是很好的例子。这一概念最早出现在17世纪,当时人们不了解空气的组成,也没有氧气、氮气、氧化作用等相关知识。为了解释燃烧现象,“燃素”的概念被提出,人们认为物体会燃烧是因为有了燃素。后来经过科学实验,人们才知道燃烧是一种化学反应,自此“燃素”的概念才被彻底弃用。

除了认知更新,贝叶斯定理也解释了人们为什么很难接受与自身经验相悖的信息或观念。因为只有条件概率足够强大,才能改变先验概率原本的影响。

举例来说,以前大多数人相信“大地是平的”。公元前5世纪左右,古希腊哲学家毕达哥拉斯提出“地球是球形”的猜想,但当时他没有什么证据。后来,亚里士多德根据月食时地影的形状,给出了第一个科学证据。直到16世纪,葡萄牙人麦哲伦实现了人类历史上的首次环球航海,证明了“地球是圆的”,人们这才开始普遍接受“地球”这个概念。

在推理小说中,侦探推理的过程也蕴含着贝叶斯定理的思想。优秀的侦探都会在心理先做出一个假设,比如预设某个人是罪犯的先验概率,然后根据不断得到的线索和证据来更新后验概率。得到的线索越多,证据越充分,对某人是罪犯的把握就越大。

在福尔摩斯推理小说中,福尔摩斯本人就是一个非常擅长贝叶斯推理的人。他第一眼见到华生时,就知道他来自阿富汗。福尔摩斯的推理过程是这样的:眼前这位先生,具有医务工作者的风度,但是一副军人气概。于是推测对方大概率是个军医。

他脸色黝黑,但是手腕的皮肤黑白分明,说明原来的肤色并非黑色,所以他是刚从气候炎热的地带回来的。他面容憔悴,这就说明他是久病初愈而又历尽了艰苦。他左臂受过伤,动作起来还有些僵硬不便。试问,一个英国的军医在气候炎热的地方历尽艰苦,臂部还负过伤,这能在什么地方呢?自然只有在阿富汗了。

这样一系列的假设、推理、验证,足见福尔摩斯的智慧,也展现了贝叶斯推理的过程。

无论是在数学还是在生活实践中,贝叶斯定理都有着重要的指导意义。究其原因,是由于一件事情由“因”推导出“果”是容易的,但是要做逆运算就很困难。比如一个人向窗户扔球,球有很大可能性会打破窗户。我们的思考和认知都在“由因索果”这个方向上。

但如果我们只知道结果,即窗户破了,想要推断原因,那就必须得到更多的信息,比如到底是哪个男孩扔球打破了窗户?窗户是被球打破的吗?解决这个逆概率问题要比正向推导困难得多,但贝叶斯方法为我们提供了一种估算逆概率难题的实用方法。

总的来说,我们可以从思维推导的正方向入手,直接估算那些有把握的概率,然后利用贝叶斯公式,得到逆方向上较难推导的条件概率。这是贝叶斯定理在统计学中的重要应用。

关于作者:徐晟,某商业银行IT技术主管,毕业于上海交通大学,从事IT技术领域工作十余年,对科技发展、人工智能有自己独到的见解,专注于智能运维(AIOps)、数据可视化、容量管理等方面工作。

本文摘编自大话机器智能:一书看透AI的底层运行逻辑》,经出版方授权发布。(ISBN:9787111696193)

大话机器智能:一书看透AI的底层运行逻辑
推荐语:AI是什么?机器如何拥有“智能”?“智能”如何起作用?本书以通俗易懂的方式,勾勒人工智能的全貌,展现AI的底层运行逻辑,即AI是如何工作的。


推荐阅读

  1. 准备写本书
  2. 这次,我真当up主了
  3. 属实逼真,决策树可视化!
  4. 21个深度学习开源数据集汇总!
  5. 耗时一个月,做了一个纯粹的机器学习网站
  6. 40篇AI论文!附PDF下载,代码、视频讲解


三连在看,月入百万👇

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报