如何在 python 中应用贝叶斯定理
贝叶斯定理对于两个事件A和B作出以下陈述:
P(A|B) = P(A)*P(B|A) / P(B)
金子:
- P(A|B):给定事件 B,事件 A 发生的概率。
- P(B|A):在事件 A 发生的情况下,事件 B 发生的概率。
- P(A):事件A的概率。
- P(B):事件B的概率。
例如,假设天气为多云的概率为 40%。
我们还假设某一天下雨的概率是 20%。
我们还假设下雨天有云的概率是 85%。
如果某一天外面多云,那一天下雨的可能性有多大?
解决方案:
- P(阴天)= 0.40
- P(雨)= 0.20
- P(阴天 | 雨) = 0.85
因此,我们可以计算:
- P(雨 | 阴天) = P(雨) * P(阴天 | 雨) / P(阴天)
- P(雨 | 阴天) = 0.20 * 0.85 / 0.40
- P(雨 | 阴天) = 0.425
如果某一天外面多云,那么那天下雨的几率是42.5% 。
我们可以创建以下简单函数来在 Python 中应用贝叶斯定理:
def bayesTheorem (pA, pB, pBA): return pA * pBA / pB
下面的例子展示了如何在实际中使用这个功能。
示例:Python 中的贝叶斯定理
假设我们知道以下概率:
- P(雨)= 0.20
- P(阴天)= 0.40
- P(阴天 | 雨) = 0.85
为了计算 P(rain | cloudy),我们可以使用以下语法:
#define function for Bayes' theorem def bayesTheorem (pA, pB, pBA): return pA * pBA / pB #define probabilities pRain = 0.2 pCloudy = 0.4 pCloudyRain = 0.85 #use function to calculate conditional probability bayesTheorem(pRain, pCloudy, pCloudyRain) 0.425
这告诉我们,如果某一天外面是多云,那么那天下雨的几率是0.425或42.5% 。
这与我们之前手动计算的值相符。
其他资源
以下教程解释了如何在 Python 中执行其他常见任务: