机器学习 | 终于有人把条件概率和贝叶斯公式讲明白了
Editor's Note
The following article is from 大数据DT Author 张雨萌
本文转载自公众号大数据DT(ID:hzdashuju)
本文摘编自《机器学习中的概率统计 Python语言描述》,经出版方授权发布
作者:张雨萌
01
从概率到条件概率
对于概率,相信大家都不会感到陌生,比如掷骰子这个最简单的概率场景,掷出的点数为5的概率是多少?我们会毫不犹豫地说出答案:概率为1/6。
这个问题太简单了,如果我们只满足于此,就没有什么研究意义了。接下来我给这个问题增加一个限定条件:已知掷出骰子的点数是奇数,再求抛掷点数为5的概率是多少。发现了没有,这个问题中我们没有直接问投掷出5这个事件的概率,而是增加了一个已知点数为奇数的前提。
生活中这类场景更多见,我们一般不会直接去推断一个事件发生的可能性,因为这样做的实际意义并不大,而且也不容易推断出结果。一般而言事件是不会孤立发生的,都会伴随其他一些条件。比如,我问你下雨的概率是多少。你可能会一头雾水,什么地点?什么时间?当日云层的厚度是多少?推断的前提条件都没有,是无法给出一个有意义、有价值的推断结果的。
因此,在实际应用中,我们更关心条件概率,也就是在给定部分信息的基础上,再对所关注事件的概率进行推断。这些给定的信息就是事件的附加条件,是我们研究时所关注的重点。
02
条件概率的具体描述
我们先来具体描述一下条件概率:假设知道给定事件B已经发生,在此基础上希望知道另一个事件A发生的可能性。此时我们就需要构造条件概率,先顾及事件B已经发生的信息,然后再求出事件A发生的概率。
这个条件概率描述的就是在给定事件B发生的情况下,事件A发生的概率,我们把它记作P(A|B)。
回到掷骰子的问题:在掷出奇数点数骰子的前提下,掷出点数5的概率是多少?奇数点数一共有{1,3,5} 3种,其中出现5的概率是1/3。很明显,和单独问掷出点数5的概率计算结果是不同的。
下面我们来抽象一下条件概率的应用场景。
回到最简单、最容易理解的古典概率模式进行分析:假定一个实验有N个可能结果,事件A和事件B分别包含M1个和M2个结果,M12表示公共结果,也就是同时发生A事件和B事件,即事件A∩B所包含的实验结果数。
通过图1-1再来形象地描述一下上述场景。
事件A和事件B单独发生的概率分别是多少?读者肯定能脱口而出,分别是M1/N和M2/N。那么再考虑条件概率:在事件发生的前提条件下,事件发生的概率是多少?
此时,我们的考虑范围由最开始的N个全部可能结果,缩小到现在的M2个结果,即事件B发生的结果范围,而这其中只有M12个结果对应事件A的发生,不难计算出条件概率P(A|B)=M12/M2。
03
条件概率的表达式分析
为了更加深入地挖掘这里面的内涵,我们进一步对条件概率的表达式P(A|B)=M12/M2进行展开,式子上下部分同时除以全部可能的结果数:
由此,我们得到了条件概率的一般定义:P(A|B)=P(AB)/P(B)。
04
两个事件的独立性
我们进一步分析上面的例子,事件A的无条件概率P(A)与它在给定事件B发生下的条件概率P(A|B)显然是不同的P(A|B)≠P(A),即,而这也是非常普遍的一种情况,无条件概率和条件概率的概率值一般都存在差异。
其实,这种情况也反映了两个事件之间存在着一些关联,假如满足P(A|B)>P(A),则可以说事件B的发生使得事件A发生的可能性增大了,即事件B促进了事件A的发生。
但是P(A)=P(A|B)的情况也是存在的,而且这是一种非常重要的情况,它意味着事件B的发生与否对事件A是否发生毫无影响。这时,我们就称A和B这两个事件独立,并且由条件概率的定义式进行转换可以得到:
实际上,我们使用以上表达式刻画事件独立性,比单纯使用P(A)=P(A|B)要更好一些,因为P(AB)=P(A)P(B)不受概率P(B)是否为0的因素制约。
由此可知,如果A和B这两个事件满足P(AB)=P(A)P(B),那么称事件A和事件B独立。
05
从条件概率到全概率公式
我们假设B1,B2,B3,...,Bn为有限个或无限可数个事件,它们之间两两互斥且在每次实验中至少发生其中一个,如图1-2所示。
用表达式描述:
现在我们引入另一个事件A,如图1-3所示。
由图1-3可知,因为Ω是一个必然事件(也就是整个事件的全集),因此有等式P(A)=P(AΩ)成立,进一步进行推导有:
P(A)=P(AΩ)=P(AB1+AB2+AB3+...+ABn)。因为事件Bi、Bj两两互斥,那么显然AB1,AB2,AB3,...,ABn也两两互斥,于是就有:
P(A)=P(AB1)+P(AB2)+P(AB3)+...+P(ABn)
再将条件概率公式P(ABi)=P(Bi)P(A|Bi)代入:
P(A)=P(B1)P(A|B1)+P(B2)P(A|B2)+...+P(Bn)P(A|Bn)
这就是我们最终得到的全概率公式,“全”字的意义在于:全部的概率P(A)被分解成了多个部分概率之和。
我们再回过头来看全概率公式的表达式,可以发现:事件A的概率P(A)应该处于最小的P(A|Bi)和最大的P(A|Bj)之间,它不是所有条件概率P(A|Bk)的算术平均,因为事件被使用的机会权重(即P(Bi))各不相同,因此全概率P(A)就是各条件概率P(A|Bk)以P(Bk)为权重的加权平均值。
06
条件概率的表达式分析
了解了全概率公式之后,我们进一步处理条件概率的表达式,得到如下等式:
这就是大名鼎鼎的贝叶斯公式。
千万不要觉得它平淡无奇,只是数学公式的推导和罗列。实际上,这个公式里包含了全概率公式、条件概率、贝叶斯准则。我们来挖掘一下里面所蕴藏的重要内涵。
贝叶斯公式将条件概率P(A|B)和条件概率P(B|A)紧密地联系起来,其最根本的数学基础就是P(A|B)P(B)=P(B|A)P(A),它们都等于P(AB)。
那这里面具体的深刻内涵是什么呢?我们接着往下看。
07
本质内涵:由因到果,由果推因
在现实中,我们可以把事件A看作结果,把事件B1,B2,...,Bn看作导致这个结果的各种原因。那么,我们所介绍的全概率公式
P(A)=P(B1)P(A|B1)+P(B2)P(A|B2)+...+P(Bn)P(A|Bn)
就是由各种原因推理出结果事件发生的概率,是由因到果。
但是,实际上还存在着一类重要的应用场景:我们在日常生活中常常是观察到某种现象,然后去反推造成这种现象的各种原因的概率。简单来说,就是由果推因。
由贝叶斯公式
最终求得的条件概率P(Bi|A),就是在观察到结果事件A已经发生的情况下,推断结果事件A是由原因Bi造成的概率的大小,以支撑我们后续的判断。
概率P(Bi)被称为先验概率,指的是在没有别的前提信息情况下的概率值,这个值一般需要借助我们的经验去估计。而条件概率P(Bi|A)被称作后验概率,它代表了在获得“结果事件A发生”这个信息之后原因Bi出现的概率,可以说后验概率是先验概率在获取了新信息之后的一种修正。
本文从概率出发,到条件概率,再到全概率公式,最终聚焦到贝叶斯公式,主要是从概念层面进行梳理,帮助读者迅速形成以条件概率为基石的认知视角。条件概率的重要性不言而喻,它将贯穿整个概率统计课程体系。
点击阅读原文,进入CCAD数据库
·END·
星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
文 | 大数据DT
推荐 | 青酱
欢迎扫描👇二维码添加关注