4.3 拉普拉斯平滑
拉普拉斯平滑
在朴素贝叶斯算法中,我们以邮件分类器为例介绍了文本分类问题。当时我们将整个字典储存起来作为词汇表。但实际上这种做法效率不高。更高效的做法是设定一个常用词汇表,只存储一定量的常用单词。但若遇到词汇表之外的生词,该怎么办呢?
首先,我们分析一下遇到生词会导致什么问题。回顾垃圾邮件分类过程:假设你完成了 CS229 课程并做了出色的研究项目,决定在 20xx 年 6 月将作品投稿到 NeurIPS 会议(机器学习领域的顶级会议,投稿截止日期通常在六月底至七月初
由于分类器从未在垃圾邮件或正常邮件的训练样本中见过 "neurips" 这个词,它认为该词出现在两类邮件中的概率均为 。因此,当需要判断一封包含 "neurips" 的邮件是否为垃圾邮件时,算法计算后验概率得到:
问题在于 中包含了 ,导致整个乘积为 。因此算法得到 ,无法做出预测。
根本原因在于统计学中常将未观测到的事件的概率估计为 ,从而导致了 的情况。为避免此问题,我们引入拉普拉斯平滑 (Laplace smoothing),用一个小概率值替代零概率。具体来说,假设要估计一个在 范围内取值的多项式随机变量 的参数 。给定 个独立观测样本 ,最大似然估计经拉普拉斯平滑后变为:
此处,分子加 ,分母加 。需注意 仍然成立(这是概率估计的必要性质
回到朴素贝叶斯分类器,应用拉普拉斯平滑后,参数估计公式修正如下:
(实践中,通常无需对 进行拉普拉斯平滑,因为垃圾邮件与非垃圾邮件的比例通常是合理可估计的, 作为 的估计值通常不会接近零
文本分类的事件模型(Event Models for Text Classification)
接下来介绍文本分类的另一种模型。朴素贝叶斯算法已能解决许多分类问题,但还有一种相关算法在文本分类上表现更优。
在之前针对文本分类的朴素贝叶斯方法中,我们使用的是多元伯努利事件模型(Multi-Variate Bernoulli Event Model)。在该模型中,假设邮件是否发送由随机过程决定(先验概率
另一种模型称为多项式事件模型(Multinomial Event Model)。为描述此模型,需使用不同的特征表示方法:令 表示邮件中的第 个单词。因此, 是一个整数,取值范围为 ,其中 是词汇表的大小。一封包含 个单词的邮件可表示为一个长度为 的向量 ;注意,不同邮件的 值可以不同。例如,邮件开头是 "A NIPS ...",则 ("a" 是词汇表第一个词), (假设 "nips" 是词汇表第 35000 个词)。
在多项式事件模型中,假设邮件生成过程如下:首先确定是否为垃圾邮件(依据 ,与前模型相同
新模型的参数仍然是 (与前相同
给定训练集 ,其中 ( 是第 个样本的单词数
最大化该似然函数得到参数的最大似然估计:
若应用拉普拉斯平滑(实践中用于提升性能)估计 和 ,在分子加 ,分母加 ,得到:
当然,这未必是最优的分类算法,但朴素贝叶斯分类器在实践中往往表现优异。因此,它因其简单、易于实现而成为一个很好的首选方案。