贝叶斯算法(Bayesian Algorithm)的核心是贝叶斯定理,它是一种基于概率统计的推断方法,主要用于在已知某些相关证据或数据的情况下,更新某个假设发生的概率。它在机器学习、垃圾邮件过滤、医疗诊断等领域应用广泛。
以下是对贝叶斯算法的基础说明及一个具体的计算示例。
1. 核心公式:贝叶斯定理
贝叶斯定理的数学表达式为:

其中:
- P(A|B)(后验概率):在事件 $B$ 已经发生的情况下,事件 $A$ 发生的概率。这是我们想要计算的目标。
- P(B|A)(似然度):在事件 $A$ 发生的情况下,事件 $B$ 发生的概率。
- P(A)(先验概率):在没有考虑事件 $B$ 之前,事件 $A$ 发生的初始概率。
- P(B) (证据/归一化常数):事件 $B$ 发生的总概率。通常通过全概率公式计算:$P(B) = P(B|A)P(A) + P(B|\\neg A)P(\\neg A)$。
2. 通俗示例:医疗诊断问题
为了直观理解,我们来看一个经典的医疗检测案例。
2.1 场景设定:
假设有一种罕见的疾病,称为“X病”。
- 如果一个人真的患病,检测结果为阳性的概率是 99%。即 P(阳性|患病) = 0.99。
- 如果一个人没有患病,检测结果误报为阳性的概率是 5%(假阳性)。即 P(阳性|健康) = 0.05。
2.2 问题:
现在,小明去做了检测,结果是阳性。请问小明真正患病的概率是多少?
很多人的直觉会认为既然准确率高达99%,那小明患病的概率应该接近99%。但贝叶斯算法告诉我们并非如此。
2.3 计算步骤:
我们需要计算的是P(患病|阳性)
第一步:确定已知量
- P(患病) = 0.01
- P(健康) = 1 – 0.01 = 0.99
- P(阳性|患病) = 0.99
- P(阳性|健康) = 0.05
第二步:计算分母 P(阳性)(检测出阳性的总概率)
测出阳性有两种情况:
所以,总的阳性概率为: P(阳性) = 0.0099 + 0.0495 = 0.0594
第三步:代入贝叶斯公式
P(患病|阳性) = P(阳性|患病) × P(患病) / P(阳性) = 0.99 × 0.01/0.0594 = 0.0099/0.0594 ≈ 0.1667
2.4 结论
即使检测结果为阳性,小明真正患病的概率仅为 16.7% 左右。
为什么这么低? 因为这种病太罕见了(先验概率低),导致虽然检测很准,但庞大的健康人群基数产生的“假阳性”数量(495人/万人)远远超过了真正的患者数量(99人/万人)。这就是贝叶斯思维的核心:先验概率对结果有巨大影响。
3. 在机器学习中的应用:朴素贝叶斯分类器
在实际的计算机算法中,最常用的是朴素贝叶斯分类器,常用于文本分类(如判断邮件是否为垃圾邮件)。
基本逻辑: 假设一封邮件包含单词 $W_1, W_2, …, W_n$。我们要计算这封邮件是垃圾邮件(S)的概率:

- “朴素”的含义:假设所有单词之间是相互独立的(虽然现实中单词有关联,但这个简化假设在工程中非常有效且计算速度快)。
- 训练过程:统计大量邮件中,垃圾邮件里出现“发票”、“中奖”等词的概率,以及正常邮件中出现这些词的概率。
- 预测过程:当新邮件到来时,提取其中的词,代入上述公式计算属于垃圾邮件的后验概率,若超过阈值则拦截。
4. 总结
贝叶斯算法不仅仅是一个公式,更是一种动态更新认知的思维方式:


