概率推理实例及python代码
时间: 2023-11-12 21:13:08 浏览: 101
这是推荐中概率矩阵分解的python代码。_Python_下载.zip
一个简单的概率推理实例是病人是否患有某种疾病的推理。假设有一个测试可以检测出患有该疾病的人,该测试的准确性为95%。在人群中,只有0.1%的人患有该疾病。现在假设一个人接受了该测试,测试结果为阳性,请问该人患有该疾病的概率是多少?
我们可以使用贝叶斯定理进行推理。假设事件A表示患有该疾病,事件B表示测试结果为阳性。则根据贝叶斯定理,患有该疾病的概率为:
$P(A|B) = \frac{P(B|A)P(A)}{P(B)}$
其中,$P(A)$表示患有该疾病的先验概率,即0.1%;$P(B|A)$表示在患有该疾病的情况下测试结果为阳性的概率,即95%;$P(B)$表示测试结果为阳性的概率,可以用全概率公式计算:
$P(B) = P(B|A)P(A) + P(B|\neg A)P(\neg A)$
其中,$P(B|\neg A)$表示在不患有该疾病的情况下测试结果为阳性的概率,可以通过减法计算得到,即$P(B|\neg A) = 1 - P(\neg B|\neg A)$,其中$P(\neg B|\neg A)$表示在不患有该疾病并且测试结果为阴性的概率,可以用补集法计算得到,即$P(\neg B|\neg A) = 1 - P(B|\neg A)$。$P(\neg A)$表示不患有该疾病的先验概率,可以通过减法计算得到,即$P(\neg A) = 1 - P(A)$。
将上述概率值代入公式中可得:
$P(A|B) = \frac{0.95 \times 0.001}{0.95 \times 0.001 + 0.05 \times 0.999} \approx 0.018$
即该人患有该疾病的概率只有1.8%。
下面是使用Python实现上述概率推理的代码:
```python
# 先验概率
P_A = 0.001
P_notA = 1 - P_A
# 准确性
P_B_givenA = 0.95
P_notB_givenA = 1 - P_B_givenA
P_notB_given_notA = 0.05
P_B_given_notA = 1 - P_notB_given_notA
# 全概率
P_B = P_B_givenA * P_A + P_B_given_notA * P_notA
# 贝叶斯定理
P_A_given_B = P_B_givenA * P_A / P_B
print("该人患有该疾病的概率为:{:.2%}".format(P_A_given_B))
```
输出结果为:
```
该人患有该疾病的概率为:1.83%
```
阅读全文