贝叶斯法则


一个问题

假定人口总体的 1% 患癌。如果患癌,检测结果为阳性的可能性为 90%,如果不患癌,检测结果为阴性的可能性为 90%,在这种情景下,如果你的测试结果为阳性,患癌的概率是多少?

图解分析如下:

图中大的黑方框表示所有人, 其中小的黑圈表示 1%的患癌人群。

解法:

在未获得证据之前

P(C) 表示患癌人群的概率 , 即P(C) = 0.01

P(~C) 表示不患癌人群的概率, 即 P(~C) = 0.99

P(Pos | C) 表示患癌人群中检测到阳性的概率, P(Pos | C) = 0.9

P(Neg | C) 表示患癌人群中检测到阴性的概率, P(Neg | C) = 0.1

P(Pos | ~C) 表示不患癌人群检测到阳性的概率, P(Pos | C')  = 0.1

P(Neg | ~C) 表示不患癌人群检测到阳性的概率, P(Pos | C')  = 0.9

当确认结果为阳性后

P(C, Pos) 表示患癌检测为阳性的概率, P(C, Pos) = P(C) * P(Pos | C) = 0.01 * 0.9 = 0.009

P(~C, Pos) 表示不患癌检测为阳性的概率, P(~C, Pos) = P(C') * P(Pos | C') = 0.99 * 0.1 = 0.099

归一化1

P(Pos) 表示检测结果为阳性的概率, P(Pos)  = P(C, Pos) + P(~C, Pos) = 0.009 + 0.099 = 0.108

归一化2

P(C | Pos) 表示得了癌症,且为阳性的概率, P(C | Pos) = P(C, Pos) / P(Pos) = 0.009 / 0.108 = 0.083

P(~C | Pos) 表示没有得癌,检测结果为阳性的概率, P(~C | Pos) = P(~C, Pos) / P(Pos) = 0.917

将上面两个结果值相加  P(C | Pos) + P(~C | Pos)  = 1

学习目标:条件概率

我们使用以下注释:

  • P(A)P(A) 表示 "A 的概率"
  • P(\neg A)P(?A) 表示 "非 A 的概率"
  • P(A,B)P(A,B) 表示 "A 和 B 同时发生的 概率" 并且
  • P(A|B)P(AB) 表示 "条件为 B 时 A 发生的概率"。

将上述方法抽象思考

另一个机器学习的问题

一个机器人在红色与绿色相间的路上行走,初始情况下, 他并不知道自己走在哪个道上面,所以走在红色道路上面概率为0.5, 走在绿色道路上面概率也为0.5。

机器人有一个传感器,可以识别当前道路的颜色,如果他在红色道路上识别红色的准确率为0.8, 在绿色道路上识别绿色的准确率为0.8

现在假设这个机器人看到了红色道路,问他在的红道路上看到的概率高还是绿色道路上看到的概率高?

第一步:列出先验概率

机器人完全不知道自己在哪里,先验概率如下

P(at red) = 0.5

P(at green) = 0.5

第二步:条件概率

机器人传感器不是十全十美的。 仅仅因为机器人看见 红色,并 不代表 机器人是红色格子中。

P(see red | at red) = 0.8

P(see green | at green) = 0.8

第三步:计算后验概率

当机器的传感器看到red时, 他在哪条路上?

P(at red | see red) =

P(at green | see red) = 

Bayes 法则公式

使用公式计算

使用全概率法则计算 P(see red)

机器人看到红色有以下两种情况

1. 当机器人处于红色格子, 并且其传感器正常工作

2. 当机器人处于绿色格子, 传感器错误

将上面两种情况相加,即可得到看见红色的概率

P(see red) = P(at red) * P(see red | at red) + P(at green) * P(see red | at green) = 0.5 * 0.8 + 0.5 * 0.2 = 0.5

所以

P(at red | see red) = 0.8

P(at green | see red) = 0.2

相关