贝叶斯公式(Bayes‘ Theorem)and 贝叶斯算法(朴素贝叶斯分类器(Naive Bayes Classifier))

贝叶斯公式(Bayes’ Theorem)

贝叶斯公式(Bayes’ Theorem)是概率论中的一个基本公式,用于计算一个事件在已知另一事件发生的条件下的概率。贝叶斯公式的基本思想是通过已有数据更新我们的信念或预测。公式如下:

P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

这里, P ( A ∣ B ) P(A|B) P(AB)表示在事件 B B B已经发生的情况下事件 A A A发生的条件概率。其他符号的解释如下:

- P ( A ) P(A) P(A):事件 A A A发生的先验概率(在未观察到事件 B B B时对 A A A发生的信念)。
- P ( B ) P(B) P(B):事件 B B B发生的边缘概率(所有可能情况下 B B B发生的概率)。
- P ( B ∣ A ) P(B|A) P(BA):事件 A A A发生的情况下事件 B B B发生的条件概率(称为似然)。

贝叶斯公式的推导:

  1. 联合概率 P ( A ∩ B ) P(A \cap B) P(AB)可以表示为 P ( A ) ⋅ P ( B ∣ A ) P(A) \cdot P(B|A) P(A)P(BA) P ( B ) ⋅ P ( A ∣ B ) P(B) \cdot P(A|B) P(B)P(AB)
    P ( A ∩ B ) = P ( A ) ⋅ P ( B ∣ A ) = P ( B ) ⋅ P ( A ∣ B ) P(A \cap B) = P(A) \cdot P(B|A) = P(B) \cdot P(A|B) P(AB)=P(A)P(BA)=P(B)P(AB)
  2. 将两者等式化,并解出 P ( A ∣ B ) P(A|B) P(AB)
    P ( A ∣ B ) = P ( A ) ⋅ P ( B ∣ A ) P ( B ) P(A|B) = \frac{P(A) \cdot P(B|A)}{P(B)} P(AB)=P(B)P(A)P(BA)

实例说明

假设有一个医疗测试用于检测某种疾病,已知:

  • 该疾病在总体中的患病率(先验概率 P ( D i s e a s e ) P(Disease) P(Disease))为 1%。
  • 测试对患病者的准确率(条件概率 P ( P o s i t i v e ∣ D i s e a s e ) P(Positive|Disease) P(PositiveDisease),称为灵敏度)为 99%。
  • 测试对健康者的准确率(条件概率 P ( N e g a t i v e ∣ H e a l t h y ) P(Negative|Healthy) P(NegativeHealthy),称为特异度)为 95%。

假设测试结果是阳性,我们想知道实际患病的概率 P ( D i s e a s e ∣ P o s i t i v e ) P(Disease|Positive) P(DiseasePositive)

  1. 先验概率:
    P ( D i s e a s e ) = 0.01 P(Disease) = 0.01 P(Disease)=0.01
    P ( H e a l t h y ) = 1 − P ( D i s e a s e ) = 0.99 P(Healthy) = 1 - P(Disease) = 0.99 P(Healthy)=1P(Disease)=0.99

  2. 条件概率(似然):
    P ( P o s i t i v e ∣ D i s e a s e ) = 0.99 P(Positive|Disease) = 0.99 P(PositiveDisease)=0.99
    P ( P o s i t i v e ∣ H e a l t h y ) = 1 − P ( N e g a t i v e ∣ H e a l t h y ) = 1 − 0.95 = 0.05 P(Positive|Healthy) = 1 - P(Negative|Healthy) = 1 - 0.95 = 0.05 P(PositiveHealthy)=1P(NegativeHealthy)=10.95=0.05

  3. 边缘概率 P ( P o s i t i v e ) P(Positive) P(Positive)
    P ( P o s i t i v e ) = P ( P o s i t i v e ∣ D i s e a s e ) ⋅ P ( D i s e a s e ) + P ( P o s i t i v e ∣ H e a l t h y ) ⋅ P ( H e a l t h y ) P(Positive) = P(Positive|Disease) \cdot P(Disease) + P(Positive|Healthy) \cdot P(Healthy) P(Positive)=P(PositiveDisease)P(Disease)+P(PositiveHealthy)P(Healthy)
    P ( P o s i t i v e ) = ( 0.99 ⋅ 0.01 ) + ( 0.05 ⋅ 0.99 ) P(Positive) = (0.99 \cdot 0.01) + (0.05 \cdot 0.99) P(Positive)=(0.990.01)+(0.050.99)
    P ( P o s i t i v e ) = 0.0099 + 0.0495 = 0.0594 P(Positive) = 0.0099 + 0.0495 = 0.0594 P(Positive)=0.0099+0.0495=0.0594

  4. 使用贝叶斯公式计算 P ( D i s e a s e ∣ P o s i t i v e ) P(Disease|Positive) P(DiseasePositive)
    P ( D i s e a s e ∣ P o s i t i v e ) = P ( P o s i t i v e ∣ D i s e a s e ) ⋅ P ( D i s e a s e ) P ( P o s i t i v e ) P(Disease|Positive) = \frac{P(Positive|Disease) \cdot P(Disease)}{P(Positive)} P(DiseasePositive)=P(Positive)P(PositiveDisease)P(Disease)
    P ( D i s e a s e ∣ P o s i t i v e ) = 0.99 ⋅ 0.01 0.0594 P(Disease|Positive) = \frac{0.99 \cdot 0.01}{0.0594} P(DiseasePositive)=0.05940.990.01
    P ( D i s e a s e ∣ P o s i t i v e ) ≈ 0.1667 P(Disease|Positive) \approx 0.1667 P(DiseasePositive)0.1667

因此,即使测试结果为阳性,患病的概率也仅约为16.67%。

贝叶斯公式在各个领域有广泛应用,包括医疗诊断、机器学习、统计推断等。它的核心思想是结合先验知识与新证据不断更新我们的信念或预测。

贝叶斯算法

贝叶斯算法是一类基于贝叶斯定理的统计分类方法,常用于分类和回归问题。在机器学习中,最著名的贝叶斯算法是朴素贝叶斯分类器(Naive Bayes Classifier)。朴素贝叶斯分类器假设特征之间相互独立,并基于这种假设计算样本属于某一类别的概率。

朴素贝叶斯分类器的基本原理

朴素贝叶斯分类器利用贝叶斯定理进行分类,其公式如下:

P ( C ∣ X ) = P ( X ∣ C ) ⋅ P ( C ) P ( X ) P(C|X) = \frac{P(X|C) \cdot P(C)}{P(X)} P(CX)=P(X)P(XC)P(C)

其中:
- P ( C ∣ X ) P(C|X) P(CX):在给定特征 X X X的情况下样本属于类别 C C C的后验概率。
- P ( X ∣ C ) P(X|C) P(XC):在类别 C C C下观察到特征 X X X的似然。
- P ( C ) P(C) P(C):类别 C C C的先验概率。
- P ( X ) P(X) P(X):观察到特征 X X X的边缘概率。

朴素贝叶斯分类器的假设

朴素贝叶斯分类器的“朴素”之处在于假设特征之间相互独立。即对于特征向量 X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn),有:

P ( X ∣ C ) = P ( x 1 , x 2 , . . . , x n ∣ C ) = P ( x 1 ∣ C ) ⋅ P ( x 2 ∣ C ) ⋅ . . . ⋅ P ( x n ∣ C ) P(X|C) = P(x_1, x_2, ..., x_n|C) = P(x_1|C) \cdot P(x_2|C) \cdot ... \cdot P(x_n|C) P(XC)=P(x1,x2,...,xnC)=P(x1C)P(x2C)...P(xnC)

这大大简化了计算过程,使得算法在实际应用中非常高效。

朴素贝叶斯分类器的步骤

  1. 训练阶段

    • 计算每个类别 C C C的先验概率 P ( C ) P(C) P(C)
    • 对于每个类别 C C C,计算每个特征 x i x_i xi在类别 C C C下的条件概率 P ( x i ∣ C ) P(x_i|C) P(xiC)
  2. 分类阶段

    • 对于待分类样本 X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn),计算每个类别 C C C的后验概率 P ( C ∣ X ) P(C|X) P(CX)
    • 选择后验概率最大的类别作为分类结果。

朴素贝叶斯分类器的具体实现

假设我们有一个邮件分类器,要将邮件分为“垃圾邮件”(Spam)和“非垃圾邮件”(Ham)。我们有以下训练数据:

邮件内容类别
OfferSpam
Buy nowSpam
MeetingHam
Project updateHam
  1. 计算先验概率
    - P ( S p a m ) = Spam 邮件数量 总邮件数量 = 2 4 = 0.5 P(Spam) = \frac{\text{Spam 邮件数量}}{\text{总邮件数量}} = \frac{2}{4} = 0.5 P(Spam)=总邮件数量Spam 邮件数量=42=0.5
    - P ( H a m ) = Ham 邮件数量 总邮件数量 = 2 4 = 0.5 P(Ham) = \frac{\text{Ham 邮件数量}}{\text{总邮件数量}} = \frac{2}{4} = 0.5 P(Ham)=总邮件数量Ham 邮件数量=42=0.5

  2. 计算条件概率
    - P ( Offer ∣ S p a m ) = Spam 类别中包含 “Offer” 的邮件数量 Spam 邮件数量 = 1 2 = 0.5 P(\text{Offer}|Spam) = \frac{\text{Spam 类别中包含 “Offer” 的邮件数量}}{\text{Spam 邮件数量}} = \frac{1}{2} = 0.5 P(OfferSpam)=Spam 邮件数量Spam 类别中包含 “Offer” 的邮件数量=21=0.5
    - P ( Offer ∣ H a m ) = Ham 类别中包含 “Offer” 的邮件数量 Ham 邮件数量 = 0 2 = 0 P(\text{Offer}|Ham) = \frac{\text{Ham 类别中包含 “Offer” 的邮件数量}}{\text{Ham 邮件数量}} = \frac{0}{2} = 0 P(OfferHam)=Ham 邮件数量Ham 类别中包含 “Offer” 的邮件数量=20=0

  3. 分类新的邮件
    假设新邮件内容为 “Offer Buy now”,需要计算每个类别的后验概率:

    • 计算 P ( S p a m ∣ Offer Buy now ) P(Spam|\text{Offer Buy now}) P(SpamOffer Buy now):
      P ( S p a m ∣ Offer Buy now ) ∝ P ( Offer Buy now ∣ S p a m ) ⋅ P ( S p a m ) = P ( Offer ∣ S p a m ) ⋅ P ( Buy now ∣ S p a m ) ⋅ P ( S p a m ) P(Spam|\text{Offer Buy now}) \propto P(\text{Offer Buy now}|Spam) \cdot P(Spam) = P(\text{Offer}|Spam) \cdot P(\text{Buy now}|Spam) \cdot P(Spam) P(SpamOffer Buy now)P(Offer Buy nowSpam)P(Spam)=P(OfferSpam)P(Buy nowSpam)P(Spam)
      = 0.5 ⋅ 0.5 ⋅ 0.5 = 0.125 = 0.5 \cdot 0.5 \cdot 0.5 = 0.125 =0.50.50.5=0.125

    • 计算 P ( H a m ∣ Offer Buy now ) P(Ham|\text{Offer Buy now}) P(HamOffer Buy now):
      P ( H a m ∣ Offer Buy now ) ∝ P ( Offer Buy now ∣ H a m ) ⋅ P ( H a m ) = P ( Offer ∣ H a m ) ⋅ P ( Buy now ∣ H a m ) ⋅ P ( H a m ) P(Ham|\text{Offer Buy now}) \propto P(\text{Offer Buy now}|Ham) \cdot P(Ham) = P(\text{Offer}|Ham) \cdot P(\text{Buy now}|Ham) \cdot P(Ham) P(HamOffer Buy now)P(Offer Buy nowHam)P(Ham)=P(OfferHam)P(Buy nowHam)P(Ham)
      = 0 ⋅ 0 ⋅ 0.5 = 0 = 0 \cdot 0 \cdot 0.5 = 0 =000.5=0

    由于 P ( H a m ∣ Offer Buy now ) = 0 P(Ham|\text{Offer Buy now}) = 0 P(HamOffer Buy now)=0,而 P ( S p a m ∣ Offer Buy now ) > 0 P(Spam|\text{Offer Buy now}) > 0 P(SpamOffer Buy now)>0,因此新邮件被分类为“垃圾邮件”。

朴素贝叶斯分类器的优缺点

优点

  • 简单易实现,计算效率高。
  • 对小规模数据表现良好,尤其在文本分类任务中效果显著。
  • 对噪声数据不敏感。

缺点

  • 特征独立性假设在实际应用中往往不成立,可能影响分类效果。
  • 对于未见过的特征,条件概率为零会导致整个后验概率为零(可通过拉普拉斯平滑解决)。

朴素贝叶斯分类器尽管有其假设限制,但在许多实际应用中仍然表现出色,特别是在文本分类、垃圾邮件检测等领域。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值