朴素贝叶斯法(Naïve Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法,属于统计学分类方法。简单来说,朴素贝叶斯分类器假设在给定样本类别的条件下,样本的每个特征与其他特征均不相关,对于给定的输入,利用贝叶斯定理,求出后验概率最大的输出。朴素贝叶斯法实现简单,学习与预测的效率均较高,在文本分类领域有广泛的应用。
1. 基于贝叶斯的分类
基于概率的分类问题,就是要求使得
P(Y|X)
最大的
Y
的取值。设输入空间
根据贝叶斯定理,给定样本 x 的条件下,其类别取 yk 的概率为:
条件概率分布 P(X=x|Y=yk) 称为似然项,假设 x 的第 i 项可能取值有
2. 朴素贝叶斯法
朴素贝叶斯法对条件概率分布做了独立性假设,极大减少了参数数量。朴素贝叶斯法假设样本的所有特征在给定所属类别的情况下相互独立,即
其中, x(j) 为样本 x 的第 j 个特征。因此,基于朴素贝叶斯假设,后验概率为:
朴素贝叶斯法学习样本的类条件概率,属于生成模型。朴素贝叶斯分类器将后验概率最大的类别作为样本的归属,因此,分类模型可表示为:
由于上式分母的取值不依赖于样本的类属 yj ,于是,朴素贝叶斯分类器可简化为:
条件独立性假设是一个较强的假设,使朴素贝叶斯分类变得简单易于实现,其“朴素”一名也由此得来。但是其简单是以牺牲分类准确率为代价的,不过在实际应用中,该方法仍能取得一定的效果。
3. 朴素贝叶斯学习算法
学习朴素贝叶斯分类器,需要估计参数
P(Y=yk)
和
P(X(i)=x(i)|Y=yk)
。如果输入
X
为离散值,其参数通常采用极大似然法来估计。先验概率的极大似然估计为:
N(Y=yk) 表示取值为 yk 的样本个数。假设输入的第 i 个特征
然而,采用极大似然估计存在的一个问题是,如果训练样本中某一个特征的取值不存在,其条件概率就为0,进而导致后验概率为0,影响分类准确度。解决该问题的方法是采用平滑估计,即在随机变量各个取值的频数上加上一个平滑因子,假设平滑因子在随机变量所有取值上是均等的,那么平滑估计为:
J 为
如果输入 X 为连续值,对条件概率
4. 文本分类应用
文本数据的一个典型特征就是其维度较大,比如一篇文档,会有几千甚至上万个词,但是不同类型或主题的文档所用词汇差距较大,可以不考虑词汇出现的顺序,即采用bag of words模型,假设文本中每个词的出现都是独立的。基于此类假设的文本分类问题,可以采用朴素贝叶斯方法进行求解。
以下例子取自《信息检索导论》一书,有训练集和测试集如下:
文档ID | 文档中的词 | 属于 c=China 类 | |
---|---|---|---|
训练集 | 1 | Chinese Beijing Chinese | Yes |
2 | Chinese Chinese Shanghai | Yes | |
3 | Chinese Macao | Yes | |
4 | Tokyo Japan Chinese | No | |
测试集 | 5 | Chinese Chinese Chinese Tokyo Japan | ? |
现在要判断测试集的数据是否属于China类。首先由训练集数据计算先验概率及类条件概率。
P(c)=3/4
,
P(c¯)=1/4
注意到,Tokyo、Japan在训练集的China类中没有出现,其条件概率就为0,会影响到测试集类别的估计,因此,我们采用拉普拉斯平滑,各类中每个词出现的概率计算如下:
P(Chinese|c)=(5+1)/(8+6)=3/7
P(Tokyo|c)=P(Japan|c)=(0+1)/(8+6)=1/14
P(Chinese|c¯)=(1+1)/(3+6)=2/9
P(Tokyo|c¯)=P(Japan|c¯)=(1+1)/(3+6)=2/9
然后,计算测试集数据属于各类别的概率:
于是,分类器会将测试集数据归于China类。
5. 总结
本文详述了朴素贝叶斯分类方法,并以一个简单的文本分类为例介绍其应用。朴素贝叶斯的朴素体现在对各个特征的独立性假设,加上独立性假设后,大大减少了参数假设空间,其学习与预测大为简化。
尽管条件独立性假设很朴素,但是朴素贝叶斯分类器的分类效果依然很好,即使各特征之间存在较强的相关性。The Optimality of Naïve Bayes一文给出了一种解释,简述如下:特征之间的相关性可能在不同类别中均匀分布,不同特征的相关性可能相互抵消,因此,独立性假设会改变分类的后验概率大小,但不会改变其相对大小,所以不会影响分类结果。