上一节介绍了在贝叶斯网络中执行精确推理的一般方法。本节将讨论如何使用相同的方法来解决被称为 朴素贝叶斯 (naive Bayes)模型的 分类 (classification)问题。朴素贝叶斯模型是一种特殊类型的贝叶斯网络结构。该结构如图3-5所示。图3-6中显示了一种等效但更紧凑的表示,其中使用了 板 (plate),在图中显示为圆形框。框底部的 i =1: n 指定变量名下标中的 i 从1到 n 重复。
在朴素贝叶斯模型中,类 C 是查询变量,观测特征 O 1: n 是证据变量。朴素贝叶斯模型之所以被称为朴素,是因为该模型假设给定类的证据变量之间存在条件独立性。使用2.6节中引入的符号,我们可以记作:对所有 i ≠ j ,( O i ⊥ O j | C )。当然,如果这些条件独立性假设不成立,那么我们可以在观测特征之间添加必要的有向边。
图3-5 朴素贝叶斯模型
图3-6 朴素贝叶斯模型的板表示
我们必须指定 先验概率 (prior) P ( C )和 类条件分布 (class-conditional distribution) P ( O i | C )。如前一节所述,我们可以应用链式规则来计算联合分布:
分类任务涉及计算条件概率 P ( c | o 1 :n )。根据条件概率的定义,可以得出:
我们可以通过边缘化联合分布来计算分母的值:
式(3.5)中的分母不是 C 的函数,因此可以视为常数。所以,我们可以得出:
其中, κ 是 归一化常数 (normalization constant),使得 。通常情况下,我们忽略 κ ,记作:
其中,成正比符号∝用于表示左侧与右侧成比例。示例3-4说明了如何将推理应用于雷达跟踪分类问题。
示例3-4 雷达目标分类,确定雷达跟踪轨迹的目标是飞鸟还是飞机 。假设有一个雷达跟踪轨迹,确定该轨迹是由飞鸟还是飞机产生的。我们的推断基于飞机的空速和航向波动量。飞机的空速代表了我们的信念,即在没有任何轨迹信息的情况下,目标是飞鸟还是飞机。图3-7是根据雷达数据估算的飞机空速 v 所对应的类别条件分布示例图。
图3-7 根据雷达数据估算的飞机空速 v 所对应的类别条件分布
假设根据链式法则,我们确定:
P (bird,slow,little heading fluctuation)=0.03,
P (aircraft,slow,little heading fluctuation)=0.01
当然,这些概率之和不等于1。如果我们想在给定的证据下确定目标是飞鸟的概率,那么我们将进行以下的计算:
P (bird|slow,little heading fluctuation)=0.03/(0.03+0.01)=0.75
我们可以使用这种方法推断类的分布,但对于许多应用程序,我们必须提交到特定的类。通常根据具有最高后验概率(arg maxc P ( c | o 1: n ))的类进行分类。然而,选择一个类别实际上是一个决策问题,因此通常应该考虑错误分类的后果。例如,如果使用我们的分类器来过滤出不是用于空中交通控制飞机的目标,那么可以偶尔让一些飞鸟和其他杂波通过我们的过滤器。然而,我们希望避免过滤掉任何真实的飞机,因为这可能会导致碰撞。在这种情况下,只有当后验概率接近1时,我们才可能希望将轨迹分类为飞鸟。我们将在第6章中讨论决策问题。