程序员的数学--用贝叶斯定理来推断一个案子
Posted frank909
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员的数学--用贝叶斯定理来推断一个案子相关的知识,希望对你有一定的参考价值。
贝叶斯讲什么呢?
先抛出一个问题:
我有一个同事年不群,请问他是正人君子的可能性有多大?
因为可能性是个主观感受,没有办法量化,所以在数学中一般会问年不群是正人君子的概率有多高?
初看无从下手,但其实也有套路可循。
- 先给一个假设
- 然后观察验证和修改
- 得到相对靠谱的结果
比如,我们具体可以先这样做:
- 假设他是正人君子的概率是 0.5
- 寻求证据,证明他是正人君子或者否
- 修正之前的假设概率得到最终概率
你看看,这实际和我们的日常生活也差不多,贝叶斯定理正好可以解决如此问题,不过它是数学工具。
什么是贝叶斯定理?
因为是数学工具,它有自己的公式:
P
(
H
∣
E
)
=
P
(
H
)
∗
P
(
E
∣
H
)
/
P
(
E
)
P(H|E)=P(H)*P(E|H)/P(E)
P(H∣E)=P(H)∗P(E∣H)/P(E)
我归纳如下:
贝叶斯定理是一个通过修正先验概率最终求得后验概率的过程。
先验概率
上面公式中的 P(H) 是先验概率。
先验概率一般指事先统计、经验估算的概率,它是一个既成的事实,不以人的意志为转移。
条件概率
P(E|H) 是条件概率,当事件 H 发生时,事件 E 也发生的概率是多少
标准似然度 1
P ( E ∣ H ) / P ( E ) P(E|H)/P(E) P(E∣H)/P(E)
后验概率
P(H|E) 是条件概率,但因为标准似然度的原因,它被称为后验概率。
P
(
后
验
)
=
标
准
似
然
度
∗
P
(
先
验
)
P(后验)=标准似然度*P(先验)
P(后验)=标准似然度∗P(先验)
贝叶斯推理尝试
好了,公式知道了,我们来求年不群是不是正人君子的概率。
1. 给假设概率
假定一个人是正人君子的概率是 0.6,我们用 P(H) 表示,H 是假设(Hyposesis) 的缩写
P
(
H
)
=
0.6
P(H) = 0.6
P(H)=0.6
比如 100 个人当中有 60 个正人君子,40 个猥琐男。
2. 观察论证
我一直以为你是正人君子,直到。。。
这个句式是比较常见的电视剧台词模板,说明了什么呢?
一些新的线索,让之前的看法发生了改变。
比如:
- 我一直以为你是正人君子,直到发现你最终经常做一些猥琐的动作。
- 我一直以为你是正人君子,直到发现你每天读《曾国潘家书》。
两种不同的证据,会改变假设的可能性,可能增强,可能减弱。
设想,我们发现的第一类证据,看见了年不群做一些猥琐的动作。
猥琐男不一定做猥琐的动作,做猥琐动作的也可能是正人君子。
怎么把这个现象用数学概率描述出来呢?
猥琐动作记为事件 E,它其实也有概率,用 P(E) 指代,E 是 Evidence 的缩写。
P
(
E
)
=
P
(
E
∣
H
)
∗
P
(
H
)
+
P
(
E
∣
A
)
∗
P
(
A
)
P(E) = P(E|H)*P(H) + P(E|A)*P(A)
P(E)=P(E∣H)∗P(H)+P(E∣A)∗P(A)
这里的 A 代表猥琐男,P(A) 是猥琐男的概率。
P(E) 的意义是一个人做猥琐动作的概率,包括了正人君子做猥琐动作的概率和猥琐男做猥琐动作的概率。
假设 60 个正人君子中有 5 个人做了猥琐的动作,那么按照统计学的算法
P
(
E
∣
H
)
=
5
/
60
=
0.083
P(E|H)=5/60=0.083
P(E∣H)=5/60=0.083
假设 40 个猥琐男中有 36 个人会做猥琐的动作,那么概率是:
P
(
E
∣
A
)
=
36
/
40
=
0.9
P(E|A)=36/40=0.9
P(E∣A)=36/40=0.9
那么,整体人群做猥琐动作的比例就可以根据公式求出来了:
P
(
E
)
=
P
(
E
∣
H
)
∗
P
(
H
)
+
P
(
E
∣
A
)
∗
P
(
A
)
=
0.083
∗
0.6
+
0.9
∗
0.4
=
0.05
+
0.36
=
0.41
P(E) = P(E|H)*P(H) + P(E|A)*P(A)=0.083*0.6+0.9*0.4=0.05+0.36=0.41
P(E)=P(E∣H)∗P(H)+P(E∣A)∗P(A)=0.083∗0.6+0.9∗0.4=0.05+0.36=0.41
这样,套公式后验概率也可以求出来了:
P
(
H
∣
E
)
=
P
(
H
)
∗
P
(
E
∣
H
)
/
P
(
E
)
=
0.6
∗
0.083
/
0.41
=
0.12
P(H|E)=P(H)*P(E|H)/P(E)=0.6*0.083/0.41=0.12
P(H∣E)=P(H)∗P(E∣H)/P(E)=0.6∗0.083/0.41=0.12
这代表什么呢?
代表年不群是正人君子的概率是 12%.
但如果不考虑证据的前提下,他的先验概率可是高达 60%。
数学题目练习
一个幼儿园的男孩、女孩的比例是 4.5 :5.5,男孩子往水池扔东西的概率是 0.6,女孩子扔东西的概率是 0.4。现在发现水池有一个玩具,请问是男孩子扔的概率是多少?
A 代表男孩子,所以 P(A) 为 0.45
B 代表女孩子,所以P(B) 为 0.55
E 代表扔东西,P(E|A) = 0.6,P(E|B)=0.4,所以:
P
(
E
)
=
P
(
E
∣
A
)
∗
P
(
A
)
+
P
(
E
∣
B
)
∗
P
(
B
)
=
0.6
∗
0.45
+
0.4
∗
0.55
=
0.49
P(E)=P(E|A)*P(A)+P(E|B)*P(B)=0.6*0.45+0.4*0.55= 0.49
P(E)=P(E∣A)∗P(A)+P(E∣B)∗P(B)=0.6∗0.45+0.4∗0.55=0.49
那么套用贝叶斯公式
P
(
A
∣
E
)
=
P
(
A
)
∗
P
(
E
∣
A
)
/
P
(
E
)
=
0.45
∗
0.6
/
0.49
=
0.55
P(A|E)=P(A)*P(E|A)/P(E)=0.45*0.6/0.49=0.55
P(A∣E)=P(A)∗P(E∣A)/P(E)=0.45∗0.6/0.49=0.55
男孩子的概率也只是 55%,看起来,男孩子淘气,但是女孩子数量多且扔东西的比例也不低,所以,不能随便冤枉人。
贝叶斯定理的影响因子
回到贝叶斯定理的公式:
P
(
H
∣
E
)
=
P
(
H
)
∗
P
(
E
∣
H
)
/
P
(
E
)
P(H|E)=P(H)*P(E|H)/P(E)
P(H∣E)=P(H)∗P(E∣H)/P(E)
P ( E ) = P ( E ∣ H ) ∗ P ( H ) + P ( E ∣ A ) ∗ P ( A ) P(E) = P(E|H)*P(H) + P(E|A)*P(A) P(E)=P(E∣H)∗P(H)+P(E∣A)∗P(A)
能够影响最终结果的有 4 项:
- P(H)
- P(A)
- P(E|H)
- P(E|A)
先验的重要性
先验如果不是经过严密的统计数据那么就和拍脑袋一样,或者说本身就是拍脑袋,如果证据很少或者是难以发现,最终的结果就很难保证公平。
比如,发生案子的时候,你锁定了一个嫌疑犯,如果没有找到关键证据,你能轻易给定论吗?
证据的重要性
证据和假设正相关,代表标准似然度 > 1,它能够增强假设。
证据和假设负相关,代表标准似然度 < 1,它会减弱假设。
证据和假设毫无关系,代表标准似然度 = 1,它对结果毫无意义。
所以,证据也同样需要严谨对待。
贝叶斯定理的意义
贝叶斯定理应用很广,任何需要预测估计的地方,几乎都可以应用。就我实际接触过的有机器学习和自动驾驶。
贝叶斯也有很现实的生活哲学意义。
大数据时代,你在网络上看到的故事可能不是事实,可能它是假的。一个事实也可能不是数据,因为它可能是孤立的不具代表性,数据可能不是证据,它可能是片面的,只是别人刻意让你看见的。2
你很可能被你的直觉或者表面现象欺骗。
参考
以上是关于程序员的数学--用贝叶斯定理来推断一个案子的主要内容,如果未能解决你的问题,请参考以下文章