隔壁老王要去10公里外的一个地方办事,他可以选择:
1. 走路
2. 骑自行车
3. 开车
并花费了一定时间到达目的地。在这个事件中,可以把交通方式(走路、骑车或开车)认为是原因,花费的时间认为是结果。
若,老王花了一个小时的时间完成了10公里的距离:
若,老王一共用了两个小时的时间完成了10公里的距离:那么很有可能他是走路过去的。
若,老王只用了二十分钟,那么很有可能是开车。
这种先知道结果(知道花费了多长时间),然后由结果估计原因(是走路,是骑车还是开车)的概率分布,p(交通方式|时间),就是后验概率。
老王早上起床的时候觉得精神不错,想锻炼下身体,决定跑步过去;
也可能老王想做个文艺青年试试最近流行的共享单车,决定骑车过去;
也可能老王想炫个富,决定开车过去。
老王的选择与到达目的地的时间无关。
先于结果,确定原因的概率分布,p(交通方式),就是先验概率。
P(A|B)是在B发生的情况下A发生的可能性。
首先,事件B发生之前,我们对事件A的发生有一个基本的概率判断,称为A的先验概率,用P(A)表示;
其次,事件B发生之后,我们对事件A的发生概率重新评估,称为A的后验概率,用P(A|B)表示;
类似的,事件A发生之前,我们对事件B的发生有一个基本的概率判断,称为B的先验概率,用P(B)表示;
同样,事件A发生之后,我们对事件B的发生概率重新评估,称为B的后验概率,用P(B|A)表示。
两个一模一样的碗,一号碗有30颗水果糖和10颗巧克力糖,二号碗有水果糖和巧克力糖各20颗。
现在随机选择一个碗,从中摸出一颗糖,发现是水果糖。请问这颗水果糖来自一号碗的概率有多大?
我们假定,H1表示一号碗,H2表示二号碗。
由于这两个碗是一样的,所以 P ( H 1 ) = P ( H 2 ) P(H_1)=P(H_2) P(H1)=P(H2),也就是说,在取出水果糖之前,这两个碗被选中的概率相同。
因此, P ( H 1 ) = 0.5 P(H_1)=0.5 P(H1)=0.5,我们把这个概率就叫做"先验概率",即没有做实验之前,来自一号碗的概率是0.5。
再假定,E表示水果糖,所以问题就变成了在已知E的情况下,来自一号碗的概率有多大,即求 P ( H 1 ∣ E ) P(H1|E) P(H1∣E)。我们把这个概率叫做"后验概率",即在E事件发生之后,对 P ( H 1 ) P(H_1) P(H1)的修正。
根据条件概率公式,得到
P ( H 1 ∣ E ) = P ( E ∣ H 1 ) P ( H 1 ) P ( E ) P(H_1|E)=\frac {P(E|H_1)P(H_1)}{P(E)} P(H1∣E)=P(E)P(E∣H1)P(H1)
P ( 1 号 碗 ∣ 水 果 糖 ) = P ( 水 果 糖 ∣ 1 号 碗 ) P ( 1 号 碗 ) P ( 水 果 糖 ) P(1号碗|水果糖)=\frac {P(水果糖|1号碗)P(1号碗)}{P(水果糖)} P(1号碗∣水果糖)=P(水果糖)P(水果糖∣1号碗)P(1号碗)
我们通常这样写:
P ( H 1 ∣ E ) = P ( H 1 ) P ( E ∣ H 1 ) P ( E ) P(H_1|E)=P(H_1)\frac {P(E|H_1)}{P(E)} P(H1∣E)=P(H1)P(E)P(E∣H1)
已知, P ( H 1 ) P(H_1) P(H1)等于0.5, P ( E ∣ H 1 ) P(E|H_1) P(E∣H1)为一号碗中取出水果糖的概率,等于30÷(30+10)=0.75。
那么求出P(E)就可以得到答案。根据全概率公式:
P ( E ) = P ( E ∣ H 1 ) P ( H 1 ) + P ( E ∣ H 2 ) P ( H 2 ) P(E)=P(E|H_1)P(H_1)+P(E|H_2)P(H_2) P(E)=P(E∣H1)P(H1)+P(E∣H2)P(H2)
所以,
P ( E ) = 0.75 × 0.5 + 0.5 × 0.5 = 0.625 P(E)=0.75\times 0.5+0.5\times 0.5 = 0.625 P(E)=0.75×0.5+0.5×0.5=0.625
将数字代入原方程,得到,
P ( H 1 ∣ E ) = 0.5 0.75 0.625 = 0.6 P(H_1|E)=0.5\frac {0.75}{0.625}=0.6 P(H1∣E)=0.50.6250.75=0.6
在使用该算法的时候,如果不需要知道具体的类别概率,即上面P(H1|E)=0.6,只需要知道所属类别,即只需要知道我们取到的水果糖是来自一号碗的,而不用知道它来自一号碗的概率有多大,我们有必要计算P(E)这个全概率吗?
是没有必要的。我们只需要比较 P(H1|E)和P(H2|E)的大小,也就是比较这颗水果糖来自1号碗的概率是多大,来自2号碗的概率又是多大,找到那个最大的概率就可以。
P ( H 1 ∣ E ) = P ( H 1 ) P ( E ∣ H 1 ) P ( E ) P(H_1|E)=P(H_1)\frac {P(E|H_1)}{P(E)} P(H1∣E)=P(H1)P(E)P(E∣H1)
P ( H 2 ∣ E ) = P ( H 2 ) P ( E ∣ H 2 ) P ( E ) P(H_2|E)=P(H_2)\frac {P(E|H_2)}{P(E)} P(H2∣E)=P(H2)P(E)P(E∣H2)
既然如此,两者的分母都是相同的,那我们只需要比较分子即可。即比较P(E|H1)P(H1)和P(E|H2)P(H2)的大小,
所以为了减少计算量,全概率公式在实际编程中可以不使用。
老王决定步行过去,那么很大可能10公里的距离大约需要两个小时;
较小可能是老王平时坚持锻炼,跑步过去用了一个小时;
更小可能是老王是个猛人,40分钟就到了。
老王决定骑车过去,很可能一个小时就能到;
较小可能是老王那天精神不错加上单双号限行交通很通畅,40分钟就到了;
还有一种较小可能是老王运气很差,连着坏了好几辆共享单车,花了一个半小时才到。
老王决定开车过去,很大可能是20分钟就到了,
较小可能是那天堵车很严重,磨磨唧唧花了一个小时才到。
这种先确定原因,根据原因来估计结果的概率分布,p(时间|交通方式),就是似然估计。
作者:Agenter 链接:知乎 https://www.zhihu.com/question/24261751/answer/158547500
作者:July 链接:CSDN https://blog.csdn.net/v_JULY_v/article/details/40984699
作者:Jack Cui 链接:https://cuijiahua.com/blog/2017/11/ml_4_bayes_1.html