朴素贝叶斯(naive Bayes)法 是基于贝叶斯定理与特征条件独立假设的分类方法.对于给定的训练数据集,首先基于特征条件独立假设 学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法.
本章叙述朴素贝叶斯法,包括朴素贝叶斯法的学习与分类、朴素贝叶斯法的参数估计算法.
设:
输入空间: X ∈ R 为 n 维向量的集合
输出空间: 类标记集合Y= {c1,c2,…,ck}。
输入为特征向量 x ∈ X
输出为类标记(class label) y ∈ Y。
X是定义在输入空间上的随机向量,Y 是定义在输出空间上的随机变量。P(X,Y)是X和Y的 联合概率分布。
训练数据集:
由P(X, Y)独立同分布产生。
朴素贝叶斯法通过训练数据集 学习联合概率分布P(X, Y)。具体地,学习以下 先验概率分布及 条件概率分布。
先验概率分布:P(Y = ck), k = 1, 2, …, K
条件概率分布:
于是学习到 联合概率分布P(X,Y).
条件概率分布P(X = x | Y = ck)有 指数级数量的参数,其估计实际是不可行的。事实上,假设数据 x 的第 j 个特征 x(j) 可能取值有 Sj个,j = 1, 2, …, n, Y可取值有 K个,那么参数个数为 K * ∏Sj(j = 1…n)
朴素贝叶斯法对条件概率分布作了 条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是:
朴素贝叶斯法实际上学习到生成数据的机制,所以属于 生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的.这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率.
朴素贝叶斯法分类时,对给定的 测试数据 x,通过学习到的模型 计算后验概率分布P(Y=ck |X=x), 将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理进行:
将前一个式子带入到上式中,有:
这是朴素贝叶斯法分类的基本公式.于是,朴素贝叶斯分类器可表示为:
注意到,上式中分母所有的 ck 都是相同的,对分母计算后为1,所以,
朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。假设选择0-1损失函数:
为了使期望风险最小化,只需对 X = x逐个极小化,由此得到:
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
即朴素贝叶斯法所采用的原理。
在朴素贝叶斯法中,学习意味着估计P(Y = ck) 和 P(Xj = xj | Y = ck)。可以应用 最大似然估计相应的概率,即利用现有的训练数据集进行相应的计算。先验概率P(Y = ck) 的最大似然估计是:
设第 j 个特征 xj 可能的取值集合为 {aj1, aj2, …, ajsj},条件概率 P(Xi = aji | Y = ck) 的极大似然估计是:
式中,xi(j) 是第 i 个样本的第 j 个特征;ajL 是第 j 个特征可能取的第 L 个值;I为指示函数。
下面给出朴素贝叶斯法的学习与分类算法.
算法4.1 (朴素贝叶斯算法(naive Bayes algorithm))
例: 试由下表的训练数据学习一个朴素贝叶斯分类器并确定x = (2, S) 的类标记y。表中 x(1)、x(2) 为特征,取值的集合分别为 A1 = {1, 2, 3}, A2 = {S, M, L},Y为类标记,Y ∈ C = {1,-1}。
用极大似然估计可能会出现所要估计的 概率值为0 的情况.这时会影响到后验概率的计算结果,使分类产生偏差.解决这一问题的方法是采用 贝叶斯估计。具体地,条件概率的贝叶斯估计是:
式中 λ ≥ 0,等价于在随机变量各个取值的频数上赋予一个正数 λ > 0。当 λ = 0 时就是极大似然估计。常取 λ = 1,这时称为 拉普拉斯平滑(Laplace smoothing)。显然,对任何L=1,2…,Sj, k=1,2…,K, 有