朴素贝叶斯定理的示例
郝伟 2021/04/26
先上公式:P(A∣B)=P(A)P(B∣A)P(A)其中,P(A∣B)指在事件B发生时事件A发生的几率。具体内容可以看这篇文章,写的非常好。
公式其实很简单,不难记忆。但是很多人都理解困难,其核心难点在于如何正确定义事件A和事件B,只要这两个事件定义正确了,注可以轻松地供稿公式计算以获得正确的结果。一般而言,P(A)或P(B)都是已知的,属于先验经验,而P(A|B) 或 P(B|A) 是未知的,属于后验经验。其中 P(A|B) 的值可能很大,甚至远比 P(A) 或 P(B) 要大。
举例来说,设事件A表示有某疾病,事件B是对此疾病的化验结果为阳性,则:
- P(A) = 0.0001, 有这个疾病的几率是万分之一;
- P(B) = 0.0002, 化验为阳性的几率是万分之二;
- P(A|B)=0.5, 在化验为阳性的情况下,确实有此疾病,即确诊几率是50%,也就是说有另外50%是误诊;
- P(B|A)=1,在有此疾病情况下去化验,化验结果100%为阳性。
下面让我们看几个示例,来深入理解这个公式。
问题:有白色和红色两个碗都随机放了水果糖和巧克力糖两种糖果,其数量分别如下:
- 白碗有30个水果糖10个巧克力糖;
- 红碗有20个水果糖20个巧克力糖。
现在随机抽出一粒糖是水果糖,则其从白碗来的几率有多大?
解:设事件A为抽取碗的颜色,则 P(白碗)=P(红碗)=50%。
设事件B为糖果的种类,则 P(水果糖)=(30+20)/(30+10+20+20)=62.5%.
在白碗中 P(水果糖∣白碗)=30/(30+10)=75%,P(巧克力糖∣白碗)=10/(30+10)=25%。
在红碗中 P(水果糖∣红碗)=20/(20+20)=50%,P(巧克力糖∣红碗)=20/(20+20)=50%。
所以,P(白碗∣水果糖)=P(水果糖)P(水果糖∣白碗)P(白碗)=62.5%75%∗50%=60%。结果说明,从白碗中取得水果糖的几率更大。这与我们的主观观察也一致,毕竟白碗中的水果糖的比例75%比红碗中的50%更高,所以有更高的几率从白碗中取得水果糖。
问题:已知某种疾病的发病率是0.0001,即1万人中会有1人得此疾病。现有一种试剂可以检验患者是否得病,其准确率为0.99,即对一个此疾病的患者进行检测,有99%的概率呈现阳性。但是对于正常人检测,它也有一定几率错误地显示为阳性,其误报率为5%。问题:现有一名化验者的检验结果呈阳性,那么他确诊的可能性有多大?
解:假定A事件表示有此疾病,事件B表示化验结果为阳性。
问题“现有一名化验者的检验结果呈阳性,那么他确诊的可能性有多大?”就是求在事件B发生的情况下,事件A发生的几率,即 P(A∣B)。那么,下面先分析已知的条件:
根据“发病率是0.0001”,可得:
P(A)=0.0001
根据 “现有一种试剂可以检验患者是否得病,其准确率为0.99”,可得:
P(B)=0.99
根据“现有一种试剂可以检验患者是否得病,其准确率为0.99”,可得:
P(B∣A)=0.99
根据“它也有一定几率错误地显示为阳性,其误报率为5%”,可得:
P(B∣Aˉ)=0.05
有了以上的三个条件后,根据全概率公式,可得: P(B)=P(B∣Aˉ)∗P(Aˉ)+P(B∣A)P(A)=0.050094
再利用条件概率公式进行计算,可得:P(A∣B)=P(B)P(B∣A)P(A)=0.0500940.99∗0.0001=0.1976%
由此可见,即使化验结果呈阳性,真正可以确诊的几率也只有0.1976%,有99.8024%的几率呈现为"假阳性",即阳性结果完全不足以说明病人得病。为什么会这样?为什么这种检验的准确率高达99%,但是可信度却不到0.2%?答案是与它的误报率太高有关(顺带提一句,如果误报率从5%降为1%,病人得病的概率会变为0.98%,即提升为原来的5倍)。有兴趣的朋友,还可以算一下"假阴性"问题,即检验结果为阴性,但是病人确实得病的概率有多大。其实,对于医学检测来说,"假阳性"不可怕,顶多带来些心理压力,大不了多化验几次即可。真正可怕的是"假阴性",即明明有病却检查不出来,结果贻误了治疗时机,结果往往可能是致命的。