计算

朴素 Bayes 分类器」(Naive Bayes classifier,NB)是一种基于Bayes 模型数据分类器。

朴素 Bayes 分类器采用了「属性条件独立性假设」(attribute conditional independence assumption):对已知类别,假设所有属性相互独立,即假设每个属性独立地对分类结果产生影响。

当我们引入属性条件独立性假设后,联合概率 可以分解为各个特征给定类别条件下的概率的乘积:

基于属性条件独立性假设,Bayes 公式可以写为

其中 为属性数目, 在第 个属性上的取值。由此得到的朴素贝叶斯分类器可表示为
朴素贝叶斯分类器的训练过程就是基于训练集 来估计类先验概率 ,并为每个属性估计条件概率

表示训练集 中第 类样本组成的集合,若有充足的独立同分布样本,则可以依据样本出现频率来估计先验概率

对离散属性而言,令 表示 中第 个属性上取值为 的样本组成的集合,则条件概率 可估为

对连续属性可考虑概率密度函数,假定 ,其中 分别是第 类样本在第 个属性上取值的均值和方差,则有

零频率处理

若某属性的取值在训练集中没有与某个类同时出现过,即 ,则利用 ,计算得到 。这是因为数据集过小导致该属性未被观测,还是因为该属性本身出现概率就为零?通常假设为第一个原因。

为了避免某个属性携带的信息在训练集中未出现的属性值抹去,在估计概率时通常进行「平滑」(Smoothing)。

1. M 估计方法

朴素贝叶斯分类器的 M 估计方法是一种对概率进行平滑的技术,用于处理在训练数据中没有出现的特征或类别。M 估计通过引入一个先验概率,将观察到的频率与先验概率进行加权平均,以减少对于某些类别或特征可能的过度估计。M 估计可以有效地处理零频率问题,即当某个类别或特征在训练数据中没有观察到时。

M 估计的公式通常如下所示:

其中:

  • 是在训练数据中观察到特征 的次数。
  • 是训练数据集中的总样本数。
  • 是先验概率。
  • 是用于平滑的常数。

2. 拉普拉斯修正

表示训练集 中可能的类型数, 表示第 个属性可能的取值数,则

这种修正方式称为「拉普拉斯修正」(Laplace Correction)。拉普拉斯避免了因训练集样本不充分导致的概率估值为零的问题。当训练集变大时,修正过程所引入的先验的影响也会逐渐变得可忽略,使得估值逐渐趋于实际概率值。

例题

利用西瓜数据集训练一个朴素贝叶斯分类器。并对训练集进行分类

解:

首先估计类先验概率

然后估计每个属性的条件概率

  • 绿
  • 绿

对于连续取值

绿

根据朴素贝叶斯分类器的判断标准,通常选择使后验概率最大的类别,因此将测试 1 判别为好瓜。

事件中

注意,若某个属性值在训练集中没有与某个类同时出现过,直接根据公式

例题

(机器学习作业)

利用下面的数据训练一个朴素贝叶斯分类器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
S M M S S S M M L L L M M L L
-1 -1 1 1 -1 -1 -1 1 1 1 1 1 1 1 -1

确定 对应的类标记

解:

首先计算出

然后计算各个先验概率

根据朴素 Bayes 分类器的定义

对于给定的 样本,有

因此朴素贝叶斯将样本分类为

例题

考虑下面的数据集

Record Class
1 0 0 0 +
2 0 0 1 -
3 0 1 1 -
4 0 1 1 -
5 0 0 1 +
6 1 0 1 +
7 1 0 1 -
8 1 0 1 -
9 1 1 1 +
10 1 0 1 +

要求:

  1. 估计条件概率
  2. 使用条件概率得到的朴素贝叶斯分类器预测样本 的类标号
  3. 使用 M 估计方法,,估计条件概率
  4. 使用第三题得到的条件概率重做第二题
  5. 比较两种方法,哪一种更好?

解:

以及条件概率

进行预测

因此预测标签为负。若使用 M 估计方法

得到贝叶斯分类器

因此预测标签为正。在存在频率为零时,选择 m 估计更好,因为这样避免了条件概率为零,更能符合真实情况。