浅谈贝叶斯
不论是学习概率统计还是机器学习的过程中,贝叶斯总是是绕不过去的一道坎,大部分人在学习的时候都是在强行地背公式和套用方法,没有真正去理解其牛逼的思想内涵。我看了一下自己学校里一些涉及到贝叶斯统计的课程,content里的第一条都是Philosophy of Bayesian statistics。
历史背景
什么事都要从头说起,贝叶斯全名为托马斯·贝叶斯(Thomas Bayes,1701-1761),是一位与牛顿同时代的牧师,是一位业余数学家,平时就思考些有关上帝的事情,当然,统计学家都认为概率这个东西就是上帝在掷骰子。当时贝叶斯发现了古典统计学当中的一些缺点,从而提出了自己的“贝叶斯统计学”,但贝叶斯统计当中由于引入了一个主观因素(先验概率,下文会介绍),一点都不被当时的人认可。直到20世纪中期,也就是快200年后了,统计学家在古典统计学中遇到了瓶颈,伴随着计算机技术的发展,当统计学家使用贝叶斯统计理论时发现能解决很多之前不能解决的问题,从而贝叶斯统计学一下子火了起来,两个统计学派从此争论不休。
什么是概率?
什么是概率这个问题似乎人人都觉得自己知道,却有很难说明白。比如说我问你 掷一枚硬币为正面的概率为多少?,大部分人第一反应就是50%的几率为正。
不好意思,首先这个答案就不正确,只有当材质均匀时硬币为正面的几率才是50%(所以不要觉得打麻将的时候那个骰子每面的几率是相等的,万一被做了手脚呢)。
好,那现在假设硬币的材质是均匀的,那么为什么正面的几率就是50%呢?
有人会说是因为我掷了1000次硬币,大概有492次是正面,508次是反面,所以近似认为是50%,说得很好(掷了1000次我也是服你)。
掷硬币的例子说明了古典统计学的思想,就是概率是基于大量实验的,也就是 大数定理。
那么现在再问你,有些事件,例如:明天下雨的概率是30%;A地会发生地震的概率是5%;一个人得心脏病的概率是40%…… 这些概率怎么解释呢?
难道是A地真的100次的机会里,地震了5次吗?
肯定不是这样,所以古典统计学就无法解释了。
再回到掷硬币的例子中,如果你没有机会掷1000次这么多次,而是只掷了3次,可这3次又都是正面,那该怎么办?难道这个正面的概率就是100%了吗?这也是古典统计学的弊端。
举个例子:生病的几率
一种癌症,得了这个癌症的人被检测出为阳性的几率为90%,未得这种癌症的人被检测出阴性的几率为90%,而人群中得这种癌症的几率为1%,一个人被检测出阳性,问这个人得癌症的几率为多少?
猛地一看,被检查出阳性,而且得癌症的话阳性的概率是90%,那想必这个人应该是难以幸免了。
那我们接下来就算算看。
我们用
A
A
A表示事件 “测出为阳性”, 用
B
1
B_{1}
B1表示“得癌症”,
B
2
B_{2}
B2表示“未得癌症”。
根据题目,我们知道如下信息:
P
(
A
∣
B
1
)
=
0.9
,
P
(
A
∣
B
2
)
=
0.1
,
P
(
B
1
)
=
0.01
,
P
(
B
2
)
=
0.99
P(A|B_{1})=0.9, P(A|B_{2})=0.1, P(B_{1})=0.01, P(B_{2})=0.99
P(A∣B1)=0.9,P(A∣B2)=0.1,P(B1)=0.01,P(B2)=0.99
那么我们现在想得到人群中检测为阳性且得癌症的几率 P ( B 1 A ) P(B_{1}A) P(B1A):
P ( B 1 A ) = P ( B 1 ) ∗ P ( A ∣ B 1 ) = 0.01 ∗ 0.9 = 0.009 P(B_{1}A)=P(B_{1})*P(A|B_{1})=0.01*0.9=0.009 P(B1A)=P(B1)∗P(A∣B1)=0.01∗0.9=0.009
这里
P
(
B
1
A
)
P(B_{1}A)
P(B1A)表示的是联合概率,得癌症且检测出阳性的概率是人群中得癌症的概率乘上得癌症时测出是阳性的几率,是0.009。
同理可得未得癌症且检测出阳性的概率:
P ( B 2 A ) = P ( B 2 ) ∗ P ( A ∣ B 2 ) = 0.99 ∗ 0.1 = 0.099 P(B_{2}A)=P(B_{2})*P(A|B_{2})=0.99*0.1=0.099 P(B2A)=P(B2)∗P(A∣B2)=0.99∗0.1=0.099
这个概率是什么意思呢?其实是指如果人群中有1000个人,检测出阳性并且得癌症的人有9个,检测出阳性但未得癌症的人有99个。可以看出,检测出阳性并不可怕,不得癌症的是绝大多数的,这跟我们一开始的直觉判断是不同的!可直到现在,我们并没有得到所谓的“在检测出阳性的前提下得癌症的 概率 ”,怎么得到呢?很简单,就是看被测出为阳性的这108(9+99)人里,9人和99人分别占的比例就是我们要的。
所以阳性得癌症的概率 P ( B 1 ∣ A ) P(B_{1}|A) P(B1∣A)为: 0.009 0.099 + 0.009 ≈ 0.083 \frac {0.009}{0.099+0.009} \approx 0.083 0.099+0.0090.009≈0.083 ,
阳性未得癌症的概率 P ( B 2 ∣ A ) P(B_{2}|A) P(B2∣A)为: 0.099 0.099 + 0.009 ≈ 0.917 \frac {0.099}{0.099+0.009} \approx 0.917 0.099+0.0090.099≈0.917 。
这里 P ( B 1 ∣ A ) P(B_{1}|A) P(B1∣A), P ( B 2 ∣ A ) P(B_{2}|A) P(B2∣A)中间多了这一竖线,表示的也是条件概率,而这个概率就是贝叶斯统计中的 后验概率!
前面提到的人群中患癌症与否的概率 P ( B 1 ) P(B_{1}) P(B1), P ( B 2 ) P(B_{2}) P(B2)就是 先验概率!
我们知道了先验概率,根据观测值(observation),也可称为test evidence:是否为阳性,来判断得癌症的后验概率,这就是基本的贝叶斯思想,我们现在就能得出本题的后验概率的公式为:
P
(
B
i
∣
A
)
=
P
(
A
∣
B
i
)
∗
P
(
B
i
)
P
(
A
∣
B
1
)
∗
P
(
B
1
)
+
P
(
A
∣
B
2
)
∗
P
(
B
2
)
P(B_{i}|A) = \frac {P(A|B_{i})*P(B_{i})}{P(A|B_{1})*P(B_{1})+P(A|B_{2})*P(B_{2})}
P(Bi∣A)=P(A∣B1)∗P(B1)+P(A∣B2)∗P(B2)P(A∣Bi)∗P(Bi)
由此就能得到如下的贝叶斯公式的一般形式。