贝叶斯公式:从先验到后验的直观理解


贝叶斯公式不难记,证明也不复杂,但只看公式,往往不够直观:

P(A∣B)=P(A)P(B∣A)P(B),P(B)>0.P(A\mid B)=\frac{P(A)P(B\mid A)}{P(B)},\qquad P(B)>0.

这里,P(A∣B)P(A\mid B) 表示:在已经知道 BB 发生的条件下,AA 发生的概率。概率的取值范围是 [0,1][0,1]。

这个公式来自同一个联合事件的两种写法:

P(A∩B)=P(A)P(B∣A)=P(B)P(A∣B).P(A\cap B)=P(A)P(B\mid A)=P(B)P(A\mid B).

受 3Blue1Brown 对贝叶斯公式的直观解释启发,我更喜欢从“实际是什么”和“被判断成什么”的区别来理解它。

先把事实和判断分开

考虑一个二分类问题。用 AA 表示实际属于目标类别,用 ¬A\neg A 表示实际不属于目标类别;用 ++ 表示模型判断为正类,用 −- 表示模型判断为负类。

模型判断实际为正类 AA实际为负类 ¬A\neg A
正类 ++真阳性 TPTP假阳性 FPFP
负类 −-假阴性 FNFN真阴性 TNTN

“实际为正类的样本有多少被找到了”和“找出来的样本有多少真的是正类”,是两个不同的问题。

第一个问题对应召回率,也叫灵敏度或真阳性率:

TPR=P(+∣A)=TPTP+FN.\mathrm{TPR}=P(+\mid A)=\frac{TP}{TP+FN}.

第二个问题对应精确率:

P(A∣+)=TPTP+FP.P(A\mid +)=\frac{TP}{TP+FP}.

还需要考虑假阳性率:

FPR=P(+∣¬A)=FPFP+TN.\mathrm{FPR}=P(+\mid\neg A)=\frac{FP}{FP+TN}.

特异性则是 P(−∣¬A)=1−FPRP(-\mid\neg A)=1-\mathrm{FPR}。这些指标不能笼统地都叫“准确率”。通常所说的 accuracy,是全部样本中判断正确的比例:

Accuracy=TP+TNTP+FP+FN+TN.\mathrm{Accuracy}=\frac{TP+TN}{TP+FP+FN+TN}.

用比率理解更新

令 p=P(A)p=P(A),它是观察模型判断之前,目标类别在总体中的比例,也就是先验概率。

在所有被判为正类的样本中,真正的正类和误判的负类分别占总体的 p TPRp\,\mathrm{TPR} 和 (1−p) FPR(1-p)\,\mathrm{FPR}。因此:

P(A∣+)=p TPRp TPR+(1−p) FPR.P(A\mid +)=\frac{p\,\mathrm{TPR}} {p\,\mathrm{TPR}+(1-p)\,\mathrm{FPR}}.

如果把概率换成正反两种情况的比率,也就是几率(odds),式子会更容易记。在 0<p<10<p<1 且 FPR>0\mathrm{FPR}>0 时:

P(A∣+)P(¬A∣+)=p1−p×TPRFPR.\frac{P(A\mid +)}{P(\neg A\mid +)} =\frac{p}{1-p}\times\frac{\mathrm{TPR}}{\mathrm{FPR}}.

也就是:后验几率 = 先验几率 × 似然比。3Blue1Brown 关于 odds 的解释展示了这种写法。

它更新的是正反两种情况的比率,不能把先验概率直接乘上似然比,当成后验概率。若更新后的比率为 a:ba:b,对应的概率是 a/(a+b)a/(a+b)。

一个具体例子

假设有 1,000 个样本:

  • 实际正类占 10%10\%,即 100 个;实际负类有 900 个。
  • 模型的召回率为 90%90\%。
  • 模型的假阳性率为 30%30\%。

按这些比例,分类结果如下:

模型判断实际正类实际负类合计
正类90270360
负类10630640
合计1009001,000

在模型判为正类的 360 个样本中,真正的正类只有 90 个:

P(A∣+)=9090+270=25%.P(A\mid +)=\frac{90}{90+270}=25\%.

用几率算也一样。先验几率为 1:91:9,似然比为 90/30=390/30=3,所以后验几率是 3:9=1:33:9=1:3,对应概率为 1/(1+3)=25%1/(1+3)=25\%。

找出了九成的正类,不等于找出来的样本有九成是正类。 负类数量较多时,即使只有一部分被误判,也可能超过真正检出的正类数量。

边界条件和小结

如果假阳性率为零,就不能再使用包含除以 FPR\mathrm{FPR} 的有限几率表达式。但仍然可以回到概率公式:只要 p TPR>0p\,\mathrm{TPR}>0,模型给出的正类判断就全部是真阳性,P(A∣+)=1P(A\mid +)=1。如果模型根本不会给出正类判断,则这个条件概率没有定义。

类似地,如果召回率为 100%100\%,就没有假阴性;在负类判断可能出现的前提下,被判为负类的样本确实属于负类。

判断一个分类器的结果是否可信,需要把三个量放在一起:目标类别的先验比例、召回率,以及假阳性率。只看召回率,不能回答“这一次判断有多大概率是对的”。

参考资料

  1. 3Blue1Brown. Bayes’ theorem.
  2. 3Blue1Brown. The medical test paradox: Can redesigning Bayes’ rule help?.

整理自我的《贝叶斯公式》笔记,沿用源文件最后编辑日期:2023 年 9 月 16 日。本次整理统一了概率符号与分类指标名称。