贝叶斯法则
一个问题
假定人口总体的 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(A∣B) 表示 "条件为 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