面试中的贝叶斯推断问题
面试中的贝叶斯推断问题
1. 有关贝叶斯推断
贝叶斯推断是一项统计技术,基于贝叶斯定理,通过观察证据来更新假设的概率。贝叶斯推断将参数看作一个变量,因此可以用于参数估计,但是在数据岗位面试中,一般以计算后验概率的方式考察
定义:
- H:假设变量,代表某一事件各种可能结果,服从特定分布,其概率密度函数为\(f_H\)(先验概率分布)
- E:证据变量,用于更新先验概率,服从特定分布,其概率密度函数为\(f_E\)(边际似然函数,证据分布)
- \(f_{E|H}\): 似然函数,即在固定H的前提下,E的概率密度函数
根据贝叶斯定理及全概率公式: \[ f_{post}(H=\hat{H}|E=\hat{E}) = \frac{f_{E|H=\hat{H}}(E=\hat{E})f_H(H=\hat{H})}{f_E(E=\hat{E})} = \frac{f_{E|H=\hat{H}}(E=\hat{E})f_H(H=\hat{H})}{\int_{-\infty}^\infty f_{E|H}(E=\hat{E})f_H(H)\mathrm{d}H} \] 其中:
- \(f_{post}\) 称作后验概率分布,是基于证据更新后的先验概率分布
- \(\hat{H}\) 为假设的某一特定取值
- \(\hat{E}\) 为证据的观测值
式(1)可以简写为: \[ P(H|E)= \frac{P(E|H)P(H)}{P(E)} = \frac{P(E|H)P(H)}{\sum_i^m P(E|H_i)P(H_i)} = \frac{P(E|H)P(H)}{P(E|H_i)P(H_i)+P(E|\bar{H_i})P(\bar{H_i})} \]
2. 后验概率计算的基本框架
数据分析及数据科学面试中,大多数的贝叶斯推断问题都是具体取值下的后验概率计算问题,且一般假设变量的样本空间有限,先验分布是离散的,因此其基本做题框架可以归结如下:
- 明确问题中的假设变量和证据变量分别是什么, 对于假设变量,确定一个完备事件组
- 根据要求的结果,确定关心的假设事件\(A_ k\)和证据事件B, 并确定先验概率P(A)
- 对于完备事件组中每一个假设事件\(A_ i\), 计算相应的似然性\(P(B| A_i)\)
- 根据贝叶斯定理及全概率公式计算后验概率\(P(A_i| B)\), 如果有多轮迭代,把前一轮的后验概率当作后一轮的先验概率
3. 常见题型和例题解析
3.1 检测问题
例题:已知某肺炎的患病率为0.01%。现在需要做检测,如果被测者患病则被检测为阳性的概率为99%。如果被测者没有病则被检测为阴性的概率为99.9%。现在一个人检查结果是阳性。问真正得病的概率是多少?
此类问题的特点为:先验分布和证据分布都为二值/多值分布
- 假设变量:患者真正得病,有得病和不得病两种结果
- 证据变量:患者被检测出得病,有检测出得病和检测出不得病两种结果
令:
- A事件为患者真正得病 \(P(A) = P(H=true\ positive)\)
- B事件为患者诊断得病\(P(B) = P(E = diagnosed \ positive)\)
\[ P(A) = 0.01\% \]
\[ P(B|A) = 99\%\\ \]
\[ P(B) = P(B|A)P(A)+P(B|\bar{A})P(\bar{A}) = 99\%*0.01\% + 0.1\%*99.99\% \]
可计算得到后验概率为: \[ P(A|B) = 9.01\% \] 可见诊断后后,患者得病概率上升,原本认为得病概率为0.01%,经过一个只包含一个人的样本重新计算,更新为了9.01%
3.2 硬币问题
假设有100枚硬币,其中70枚为正常,30枚为缺陷,从中取出1枚投掷10次,10次中9次为正面,1次为负面。当硬币正常时,投出正面的概率为0.5,当硬币缺陷时,投出正面的概率为0.8。求硬币缺陷的概率
此类问题的特点为,先验分布是二值分布,证据分布是伯努利分布
- 假设变量:硬币有缺陷,有是否两种可能
- 证据变量:投出n次正面,其概率为\(p^n*q^{1-n}\)
令:
- A事件为硬币有缺陷 \(P(A) = P(H = defective)\)
- B事件为投出9次正面\(P(B) = P(E = 9 \ head)\)
\[ P(A) = 0.3 \]
\[ P(B|A) = 0.8^9*0.2^1\\ \]
\[ P(B) = P(B|A)P(A)+P(B|\bar{A})P(\bar{A}) = 0.8^9*0.2^1 *0.3 + 0.5^9*0.5^1*0.7 \]
可计算得到后验概率为: \[ P(A|B) = 91.2\% \] 与此类似的问题有朋友说谎问题等
3.2.1 朋友说谎问题
假设某地今天下雨的概率是\(\frac{1}{2}\),你在前往某地前向3个当地的朋友询问是否下雨,所有人都该诉你下雨了,但是每个人都有\(\frac{1}{3}\)的概率说谎, 求某地今天真正下雨的概率
- A:某地下雨
- B:三个朋友都告诉你下雨
\[ P(A) = \frac{1}{2} \]
\[ P(B|A) = \frac{2}{3}^3\\ \]
\[ P(B) = \frac{2}{3}^3*\frac{1}{2}+\frac{1}{3}^3*\frac{1}{2} \]
3.3 三门问题
有A,B,C三扇门,其中一扇背后有奖品,当玩家选择一扇门以后,主持人会打开另一扇后面是空的门,请问玩家是否要改变自己的选择?
此类问题特点为:
- 共出现3个随机变量,都是多值分布,但是这三者之间是互斥的,如果A为1,则B,C不为1
- 此时先验变量为“某一变量为一特定值”,证据变量为“另一个变量被揭晓不为该值”,最后一个变量仅用于计算全概率,或者用于比较选择
令:
- A事件为门后有奖的是A门\(P(A) = P(H = A)\)
- D事件为B门被打开且为空\(P(B) = P(H_D= B)\)
则: \[ P(A) = \frac{1}{3} \]
$$
\[ 当A门后有车,B,C门被打开的概率是一样的 \] P(D|A) = $$ 当B门后有车,主持人不会打开B门,因此\(P(D|B) = 0\)
当C门后有车,主持人只能打开B门,因此\(P(D|C) = 1\)
因此,\(P(D) = P(A)*P(D|A)+P(B)*P(D|B)+P(C)P(D|C) = \frac{1}{3}*\frac{1}{2}+0+\frac{1}{3}*1 = \frac{1}{2}\)
由此可以计算得到: \[ P(A|D) = \frac{1}{3} \\ P(C|D) = \frac{2}{3} \] 因此,应该选择C门
3.3.1 赦免问题
有A,B,C三个囚犯,其中一个人将被赦免,另外两个将被杀死,如果有囚犯问看守,看守只能告诉他某一个人将被处死,而且看守不能告诉问他的人是否被处死。A问看守,看守回答B要被处死,求这种情况下,A和C被赦免的概率
令:
- A事件为被赦免的是A
- D事件为看守回答B被处死
\[ P(A) = \frac{1}{3} \]
\[ P(D|A) = \frac{1}{2}\\ \]
\[ P(D|B) = 0 \]
\[ P(D|C) = 1 \]
则计算可得: \[ P(A|D) = \frac{1}{3} \]
\[ P(C|D) = \frac{2}{3} \]