概率论用于量化随机变量结果的不确定性。
理解和计算单个变量的概率相对容易。然而,在机器学习中,我们经常会遇到许多随机变量以复杂且未知的方式相互作用。
有一些特定的技术可以用来量化多个随机变量的概率,如联合概率、边缘概率和条件概率。这些技术为从概率角度理解如何将预测模型拟合到数据提供了基础。
在这篇文章中,您将发现一个关于多个随机变量的联合、边缘和条件概率的简明介绍。
阅读本文后,你将了解:
- 联合概率是两个事件同时发生的概率。
- 边缘概率是一个事件发生的概率,而不管另一个变量的结果如何。
- 条件概率是在第二个事件存在的条件下,第一个事件发生的概率。
用我的新书《机器学习概率论》来启动您的项目,其中包括分步教程和所有示例的Python 源代码文件。
让我们开始吧。
- 2019年10月更新:修正了一个小拼写错误,感谢Anna。
- 2019年11月更新:描述了联合概率的对称计算。

联合、边缘和条件概率的简明介绍
照片由 Masterbutler 拍摄,保留部分权利。
概述
本教程分为三个部分;它们是:
- 单个随机变量的概率
- 多个随机变量的概率
- 独立性和互斥性的概率
单个随机变量的概率
概率论量化了事件发生的可能性。
具体来说,它量化了一个随机变量(如抛硬币、掷骰子或从一副牌中抽牌)特定结果的可能性有多大。
概率衡量了某事发生的可能性有多大。
— 第57页,《概率论:写给热情的初学者》,2016年。
对于一个随机变量x,P(x)是一个为x的所有值分配概率的函数。
- x的概率密度 = P(x)
随机变量x的特定事件A的概率表示为P(x=A),或简写为P(A)。
- 事件A的概率 = P(A)
在所有结果等可能的情况下,概率的计算方法是期望结果的数量除以所有可能结果的总数。
- 概率 = (期望结果的数量) / (所有可能结果的总数)
如果我们考虑一个离散随机变量,比如掷骰子,这就很直观了。例如,骰子掷出5的概率计算为掷出5的一个结果(1)除以总的离散结果数(6),即1/6,约等于0.1666或约16.666%。
所有结果的概率之和必须等于1。如果不是,我们就没有有效的概率。
- 所有结果的概率之和 = 1.0。
一个不可能结果的概率是零。例如,用一个标准的六面骰子掷出7是不可能的。
- 不可能结果的概率 = 0.0
一个确定结果的概率是一。例如,掷一个六面骰子,肯定会得到一个1到6之间的值。
- 确定结果的概率 = 1.0
一个事件不发生的概率,称为补集。
这可以通过1减去事件的概率来计算,即1 – P(A)。例如,不掷出5的概率是1 – P(5),即1 – 0.166,约等于0.833或约83.333%。
- 事件A不发生的概率 = 1 – P(A)
现在我们熟悉了单个随机变量的概率,让我们来考虑多个随机变量的概率。
想学习机器学习概率吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
多个随机变量的概率
在机器学习中,我们很可能需要处理许多随机变量。
例如,给定一个数据表(如Excel表格),每一行代表一个独立的观察或事件,每一列代表一个独立的随机变量。
变量可以是离散的,意味着它们取有限个值;也可以是连续的,意味着它们取一个实数或数值。
因此,我们感兴趣的是跨两个或多个随机变量的概率。
这很复杂,因为随机变量之间可以有多种相互作用的方式,而这又会影响它们的概率。
为了简化讨论,我们可以将其简化为只考虑两个随机变量(X, Y),尽管这些原则可以推广到多个变量。
并且,进一步地,只讨论每个变量的一个事件(X=A, Y=B),尽管我们也可以讨论每个变量的事件组。
因此,我们将多个随机变量的概率介绍为事件A和事件B的概率,简写为X=A和Y=B。
我们假设这两个变量以某种方式相关或依赖。
因此,我们可能需要考虑三种主要的概率类型;它们是:
- 联合概率:事件A和B的概率。
- 边缘概率:在给定变量Y的情况下,事件X=A的概率。
- 条件概率:在事件B发生的条件下,事件A的概率。
这些类型的概率构成了许多预测建模问题(如分类和回归)的基础。例如:
- 一行数据的概率是每个输入变量的联合概率。
- 一个输入变量的特定值的概率是跨其他输入变量值的边缘概率。
- 预测模型本身是对给定输入样本下输出的条件概率的估计。
联合、边缘和条件概率是机器学习的基础。
让我们依次仔细看看每一个。
两个变量的联合概率
我们可能对两个同时发生的事件的概率感兴趣,例如两个不同随机变量的结果。
两个(或多个)事件的概率称为联合概率。两个或多个随机变量的联合概率被称为联合概率分布。
例如,事件A和事件B的联合概率正式写为:
- P(A and B)
“and”或合取用倒置的大写“U”运算符“^”表示,有时也用逗号“,”表示。
- P(A ^ B)
- P(A, B)
事件A和B的联合概率计算为事件A在事件B发生的条件下的概率乘以事件B的概率。
这可以正式表述如下:
- P(A and B) = P(A given B) * P(B)
联合概率的计算有时被称为概率的基本规则、概率的“乘法法则”或概率的“链式法则”。
这里,P(A given B)是事件A在事件B已经发生条件下的概率,称为条件概率,将在下面描述。
联合概率是对称的,意味着P(A and B)和P(B and A)是相同的。使用条件概率的计算也是对称的,例如:
- P(A and B) = P(A given B) * P(B) = P(B given A) * P(A)
边缘概率
我们可能对一个随机变量的事件概率感兴趣,而不考虑另一个随机变量的结果。
例如,对于Y的所有结果,X=A的概率。
在另一个随机变量所有(或部分)结果存在的情况下,一个事件的概率称为边缘概率或边缘分布。在存在其他随机变量的情况下,一个随机变量的边缘概率被称为边缘概率分布。
之所以称为边缘概率,是因为如果将两个变量的所有结果和概率一起放在一个表格中(X作为列,Y作为行),那么一个变量(X)的边缘概率将是表格边缘上另一个变量(Y行)的概率之和。
边缘概率没有特殊的符号;它只是对于第一个变量的某个固定事件,对第二个变量所有事件的概率求和或取并集。
- P(X=A) = 对所有y求和 P(X=A, Y=yi)
这是概率论中另一个重要的基础规则,被称为“加法法则”。
边缘概率与条件概率(接下来描述)不同,因为它考虑的是第二个变量所有事件的并集,而不是单个事件的概率。
条件概率
我们可能对一个事件在另一个事件发生的情况下的概率感兴趣。
一个事件在另一个事件发生的情况下发生的概率称为条件概率。一个随机变量对于一个或多个随机变量的条件概率被称为条件概率分布。
例如,事件A在事件B发生条件下的条件概率正式写为:
- P(A given B)
“given”用竖线“|”运算符表示;例如:
- P(A | B)
事件A在事件B发生条件下的条件概率计算如下:
- P(A | B) = P(A and B) / P(B)
这个计算假设事件B的概率不为零,即不是不可能事件。
事件A在事件B发生条件下的概念,并不意味着事件B已经发生(例如,是确定的);相反,它是在一次给定的试验中,事件A在事件B发生之后或存在的情况下发生的概率。
独立性和互斥性的概率
在考虑多个随机变量时,它们可能不相互作用。
我们可能知道或假设两个变量彼此不依赖,而是独立的。
或者,变量可能相互作用,但它们的事件不能同时发生,这被称为互斥。
在本节中,我们将更仔细地研究在这些情况下多个随机变量的概率。
独立性
如果一个变量不依赖于第二个变量,这被称为独立性或统计独立性。
这对计算两个变量的概率有影响。
例如,我们可能对独立事件A和B的联合概率感兴趣,这与A的概率和B的概率是相同的。
概率通过乘法结合,因此独立事件的联合概率计算为事件A的概率乘以事件B的概率。
这可以正式表述如下:
- 联合概率:P(A and B) = P(A) * P(B)
正如我们可能直观地想到的,独立随机变量的事件的边缘概率就是该事件的概率。
这就是我们所熟悉的单个随机变量的概率概念。
- 边缘概率:P(A)
我们将独立概率的边缘概率简称为概率。
同样,当变量独立时,A在B发生条件下的条件概率就是A的概率,因为B的概率没有影响。例如:
- 条件概率:P(A given B) = P(A)
我们可能从抽样中熟悉统计独立性的概念。这假设一个样本不受先前样本的影响,也不影响未来的样本。
许多机器学习算法假设来自一个域的样本彼此独立,并且来自相同的概率分布,这被称为独立同分布,简称 i.i.d。
互斥性
如果一个事件的发生排除了其他事件的发生,那么这些事件被称为互斥。
这些事件的概率被称为不相交,意味着它们不能相互作用,是严格独立的。
如果事件A与事件B互斥,那么事件A和事件B的联合概率为零。
- P(A and B) = 0.0
相反,一个结果的概率可以描述为事件A或事件B,正式表述如下:
- P(A or B) = P(A) + P(B)
“或”也称为并集,用大写字母“U”表示;例如:
- P(A or B) = P(A U B)
如果事件不是互斥的,我们可能对任一事件的结果感兴趣。
非互斥事件的概率计算为事件A的概率加上事件B的概率,减去两个事件同时发生的概率。
这可以正式表述如下:
- P(A or B) = P(A) + P(B) – P(A and B)
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
书籍
- 《概率:写给热情的初学者》, 2016.
- 模式识别与机器学习, 2006.
- 机器学习:概率视角, 2012.
文章
- 概率,维基百科.
- 概率与统计中的符号,维基百科.
- 独立性(概率论),维基百科.
- 独立同分布随机变量,维基百科.
- 互斥性,维基百科.
- 边缘分布,维基百科.
- 联合概率分布,维基百科.
- 条件概率, 维基百科.
总结
在这篇文章中,您发现了一个关于多个随机变量的联合、边缘和条件概率的简明介绍。
具体来说,你学到了:
- 联合概率是两个事件同时发生的概率。
- 边缘概率是一个事件发生的概率,而不管另一个变量的结果如何。
- 条件概率是在第二个事件存在的条件下,第一个事件发生的概率。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
亲爱的Brownlee先生,
如果我没弄错的话,在“边缘概率:在给定变量B的情况下,事件A的概率”这一行中,应该写成“……:在给定变量Y的情况下,事件A的概率”。
感谢您精彩的文章和提示,对我帮助很大!
此致
Anna
谢谢,已修复!
你好,Jason,一如既往的好文章。只有一个问题:在文献中,作者通常将边缘概率分布P(X)作为数据集的定义。
例如:在论文《迁移学习综述》中,作者将域定义为:
一个域 D 由两个部分组成:一个特征空间 X 和一个边缘概率分布 P(X),其中 X={x_1,x_2,…,x_n}∈X。
一般来说,如果两个域不同,那么它们可能有不同的特征空间或不同的边缘概率分布。
我的问题是:如果一位作者说:某个数据集具有边缘概率分布P(X),我应该如何理解?
谢谢。
好问题。
“边缘”概率分布就是数据样本中变量的概率分布。你可以把这句话里的“边缘”去掉,意思还是一样的。使用这个词是为了表述精确。
这有帮助吗?
另一个例子是“两个数据集的边缘分布不同”?这具体是什么意思?
它们有不同的概率分布。分布发生了变化或有所不同。
同样,“边缘”这个词可以从句子中去掉来理解其本意。加上它是为了精确。
很好的问题!
你好,
您在这句话里有个打字错误;
“Discover bayes opimization, naive bayes…”(发现贝叶斯优化,朴素贝叶斯…)
我没找到,那句话具体出现在哪里?
嗨,Jason,我是您内容的忠实粉丝。请问在印度有购买您书籍的选项吗?
谢谢。
如果我的书太贵,你可以在这里找到我最好的免费教程
https://machinelearning.org.cn/start-here/
嗨,这篇文章充满了关于边缘和条件概率的信息。感谢您精彩的文章和提示,对我帮助很大!
谢谢。
感谢这篇写得非常好的文章。
不客气,很高兴它能帮到你。
好文章,谢谢。另外,我喜欢你回复每一条评论,甚至像我这条完全无聊的评论。这太酷了。
哈哈哈,我尽力。有时候评论真的很难理解。
关于边缘概率部分,
是不是应该是
P(X=A) = 对所有y求和 P(X=A, Y=yi)
P(X=A) = sum P(X=A, Y=yi) for all y
P(X=A) = sum P(X=A | Y=yi) for all y
还是我遗漏了什么?
不是的。它是联合概率的和,而不是条件概率。
请参阅边缘概率分布的质量函数
https://en.wikipedia.org/wiki/Marginal_distribution
感谢这篇文章。它非常有用。
不客气。
您能检查一下这句话吗?“
”事件A和B的联合概率计算为事件A在事件B发生条件下的概率乘以事件B的概率。“
谢谢
谢谢!已修复。
我有一个编辑团队,但错误还是会漏掉。
感谢这篇文章……它真的帮了我很多……但令人困惑的部分是,虽然你的文章里没提,如果Y未知,它还能被称为条件分布吗?
条件概率需要另一个变量。你可以称它为y,如果你愿意的话。
我正在学习迁移学习,对边缘概率有疑问。
如果两个域的边缘概率不同,P(Xs) != P(Xt)
这是否等于说 Xs 的特征空间分布 != Xt 的特征空间分布?
其中s是源域,t是目标域。
附言:我也读了之前关于边缘概率的评论。
抱歉,我不太明白,你的陈述中包含矛盾。或许你可以详细说明或重新表述你的问题?
事件A在事件B发生条件下的概念并不意味着
“事件B已经发生(例如,是确定的)”;
相反,它是在事件A发生的概率
“在事件B发生之后或存在的情况下”
对于一次给定的试验。
你能解释一下引号里的内容并给个例子吗?
还有,为什么第一句引文是错的?
也许这会有帮助。
https://en.wikipedia.org/wiki/Conditional_probability
X A 0.5
X B 0.6
Y A 0.55
公共概率会是多少?
X和Y的边缘概率会是多少?
听起来像是家庭作业。也许直接和你的老师讨论一下。
Jason,我相信其他人都跟上了,但我没有。您能给我一些关于边缘概率、条件概率、什么是互斥事件、独立事件与非独立事件的现实生活例子吗?如果我能将数学应用到实际情况中,我就能理解了。感谢您的耐心帮助。非常感激。
是的,你可以在这里看到一些例子
https://machinelearning.org.cn/how-to-develop-an-intuition-for-probability-with-worked-examples/
很遗憾,这篇文章中有各种错误。例如,“P(x)”不是随机变量“x”的密度。首先,随机变量应大写以区别于分布函数和密度的评估点(这样可以避免像本文中的错误)。即便如此,“P(X)”也不是“X”的密度,原因有二。首先,这个概率没有任何意义,因为概率测度P需要一个事件作为输入,而不是一个函数(随机变量是函数)。其次,将P(X)解释为P(X=x)(这似乎是你在做的)也是错误的。以标准正态密度为例,对于任何实数值x,P(X=x)都为0,但密度总是正的。
此外还有其他错误,例如“^”是逻辑运算符,所以写P(A ^ B)没有意义,你可能指的是A和B的交集,这是一个不同的运算符(一个倒置的“u”)。不过你在“A or B”中的“or”用对了。
感谢分享。
非常感谢,很棒的文章!只是一个普遍的评论,我总是希望在这种情况下能看到例如扑克牌之类的例子,以便更容易地理解这些概念。
扑克牌在关于概率的教科书中很常见。感谢您的建议。
只是一个问题!!!
我只想知道,如果我关注这个博客,我是否能在机器学习方面有很好的掌握,因为我已经厌倦了寻找资源。有没有比这个网站更好的路线图?
嗨,Manish…我们MachineLearningMastery的目标是通过让你有机会探索概念,而无需花费数年时间学习理论,来提供掌握知识的最短路径。话虽如此,我们相信一旦你通过实例获得了机器学习的实践经验,如果你希望更深入地研究,你对底层理论的理解将会大大增强。
祝你一切顺利!
感谢您的文章,我有一个问题。下面这句话正确吗?
“每一列代表一个独立的随机变量。”
我们知道随机变量是一个从可能结果到可测空间的函数。在我看来,每个特征或列是应用一个随机变量并产生一些结果的结果。我说的对吗?
如果我是对的,那么我们如何从一个特征列推断出随机变量?仅仅是将其解释为一个分布,并将每个结果的出现次数分配给它吗?
请问(A|AuB)该如何解决?公式是什么?
嗨,Aokiji…请详细说明和/或重新表述你的问题,以便我们更好地帮助你。
另外,以下内容可能对您有帮助
https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/conditional-probability-definition-examples/