基于贝叶斯公式来估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。

为避开这个障碍,朴素贝叶斯分类器(Naive Bayes classfier)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。换句话说,每个属性独立地对分类结果产生影响。

基于属性条件独立性假设,可重写P(c|x)

贝叶斯分类器数学模型 贝叶斯分类器原理公式_算法

其中,d为属性数目,

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_02

为x在第i个属性上的取值。由于对所有类别来说P(x)相同,则贝叶斯判定准则为(即朴素贝叶斯分类器的表达式):

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_03

显而易见,朴素贝叶斯分类器的训练过程就是基于训练集D来估计类先验概率P(c),并为每个属性估计条件概率P(Xi|c)。


贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_04

表示训练集D中第c类样本组成的集合,若有充足的独立同分布样本,则可容易地估计出类先验概率:

贝叶斯分类器数学模型 贝叶斯分类器原理公式_贝叶斯分类器数学模型_05

对离散属性而言,令

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_06

表示

贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_04

中在第i个属性上取值为

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_02

的样本组成的集合,则条件概率

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_09

可估计为

对连续属性可考虑概率密度函数,假定

,其中

贝叶斯分类器数学模型 贝叶斯分类器原理公式_算法_10


贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_11

分别是第c类样本在第i个属性上取值的均值和方差,则有

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_12

用西瓜数据集来实例讲解朴素贝叶斯分类器。

贝叶斯分类器数学模型 贝叶斯分类器原理公式_算法_13

给定测试样本1

贝叶斯分类器数学模型 贝叶斯分类器原理公式_机器学习_14

对上述进行分类,看是好瓜还是坏瓜?

首选估计类先验概率P(c),显然有

P(好瓜=是)=

贝叶斯分类器数学模型 贝叶斯分类器原理公式_贝叶斯分类器数学模型_15

≈0.471P(好瓜=否)=

贝叶斯分类器数学模型 贝叶斯分类器原理公式_算法_16

≈0.529然后为每个属性估计条件概率

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_09

 

 P(色泽=青绿|好瓜=是) = 3/8 =0.375

 P(色泽=青绿|好瓜=否) = 3/9 ≈ 0.333

P(根蒂=蜷缩|好瓜=是) = 5/8 = 0.375

P(根蒂=蜷缩|好瓜=否) = 3/9 ≈ 0.333

P(敲声=浊响|好瓜=是)= 6/8 = 0.75

P(敲声=浊响|好瓜=否) = 4/9 ≈ 0.444

P(纹理=清晰|好瓜=是)= 7/8 = 0.875

P(纹理=清晰|好瓜=否) = 2/9 ≈ 0.222

P(脐部=凹陷|好瓜=是)= 5/8 = 0.625

P(脐部=凹陷|好瓜=否) = 2/9 ≈ 0.222

P(触感=硬滑|好瓜=是)= 6/8 = 0.75

P(触感=硬滑|好瓜=否) = 6/9 ≈ 0.667

P(密度=0.697|好瓜=是)【带入正态分布概率公式】≈ 1.959

P(密度=0.697|好瓜=否)【带入正态分布概率公式】≈ 1.203

 P(含糖率=0.46|好瓜=是)【带入正态分布概率公式】≈ 0.788

P(含糖率=0.46|好瓜=否)【带入正态分布概率公式】≈ 0.066

P(好瓜=是)× P(色泽=青绿|好瓜=是)×P(根蒂=蜷缩|好瓜=是)×P(敲声=浊响|好瓜=是)×P(纹理=清晰|好瓜=是)×P(脐部=凹陷|好瓜=是)×P(触感=硬滑|好瓜=是)×P(密度=0.697|好瓜=是)×P(含糖率=0.46|好瓜=是)≈0.031

P(好瓜=否)× P(色泽=青绿|好瓜=否)×P(根蒂=蜷缩|好瓜=否)×P(敲声=浊响|好瓜=否)×P(纹理=清晰|好瓜=否)×P(脐部=凹陷|好瓜=否)×P(触感=硬滑|好瓜=否)×P(密度=0.697|好瓜=否)×P(含糖率=0.46|好瓜=否) ≈6.8 ×

贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_18

由于

0.048>6.8 \times 10^{-5}

,因此将朴素贝叶斯分类器将测试样本1判别为好瓜。

需要注意一点:若某个属性值在训练集中没有与某个类同时出现过,则直接进行概率估计进行判别分类会出现问题,例如,对一个“敲声=清脆”的测试例,有P(敲声=清脆|好瓜=是)=0/8=0.因此,无论该样本的其他属性是什么,哪怕在其它属性上明显是好瓜,分类的结果都将是“好瓜=否”,这显然不合理。

为了避免其它属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行平滑。常用拉普拉斯修正。

令N表示训练集D中可能的类别数,

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_20

表示第i个属性可能的取值数。则P(c)和P(xi|c)可修正为:

贝叶斯分类器数学模型 贝叶斯分类器原理公式_概率论_21

贝叶斯分类器数学模型 贝叶斯分类器原理公式_算法_22

例如,本节的例子中,类先验概率可估计为:

贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_23

(好瓜=是)=9/(17+2)≈ 0.474

贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_23

(好瓜=否)=10/(17+2) ≈ 0.526

贝叶斯分类器数学模型 贝叶斯分类器原理公式_人工智能_23

(色泽=青绿|好瓜=是) = (3+1) / (8+3)≈ 0.364等等

上文提到的P(敲声=清脆|好瓜=是)= (0+1)/(8+3)≈ 0.091。

 朴素贝叶斯分类器有多种使用方式;

1. 若任务对预测速度要求高,则对给定训练集,可将贝叶斯分类器涉及的所有概率估值计算出来并存入表中,这样进行预测时,直接查表就能进行判别;

2. 若任务数据更换频繁,则可采用懒惰学习,先不进行任何训练,待收到预测请求时再根据当前数据集进行概率估值。

3. 若数据不断增加,则可在现有估值的基础上,仅对新增加的样本属性值所涉及的概率估值进行计数修正即可,实现增量学习

除了朴素贝叶斯分类器外,还有半朴素贝叶斯分类器,将在下节中进行讲解。