朴素贝叶斯与文本分类

  朴素贝叶斯法(Naïve Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法,属于统计学分类方法。简单来说,朴素贝叶斯分类器假设在给定样本类别的条件下,样本的每个特征与其他特征均不相关,对于给定的输入,利用贝叶斯定理,求出后验概率最大的输出。朴素贝叶斯法实现简单,学习与预测的效率均较高,在文本分类领域有广泛的应用。

1. 基于贝叶斯的分类

  基于概率的分类问题,就是要求使得 P(Y|X) 最大的 Y 的取值。设输入空间XRn n 维向量的集合,X是定义在 X 上的随机变量,输出空间为类标记集合 Y={y1,...,yk} Y 是定义在输出空间Y上的随机变量,训练数据集共有 N 个样本:

T={(x1,y1),...,(xN,yN)}
根据贝叶斯定理,给定样本 x 的条件下,其类别取 yk 的概率为:

P(Y=yk|X=x)=P(X=x|Y=yk)P(Y=yk)jP(X=x|Y=yj)P(Y=yj)

条件概率分布 P(X=x|Y=yk) 称为似然项,假设 x 的第 i 项可能取值有Si个, Y 可能取值有K个,那么要求得样本 x 所属类别需要估计的参数总量为 K(inSi1) (此处需要减1是因为条件概率的总和为1)。由此可见,直接使用贝叶斯推理的参数数量为指数级,在实际中是不可取的。

2. 朴素贝叶斯法

  朴素贝叶斯法对条件概率分布做了独立性假设,极大减少了参数数量。朴素贝叶斯法假设样本的所有特征在给定所属类别的情况下相互独立,即

P(X=x|Y=yk)==P(X(1)=x(1),...,X(n)=x(n)|Y=yk)j=1nP(X(j)=x(j)|Y=yk)

其中, x(j) 为样本 x 的第 j 个特征。因此,基于朴素贝叶斯假设,后验概率为:

P(Y=yk|X=x)=P(Y=yk)i=1nP(X(i)=x(i)|Y=yk)jP(Y=yj)i=1nP(X(i)=x(i)|Y=yj)
  朴素贝叶斯法学习样本的类条件概率,属于生成模型。朴素贝叶斯分类器将后验概率最大的类别作为样本的归属,因此,分类模型可表示为:
y==argmaxykP(Y=yk|X=x)argmaxykP(Y=yk)i=1nP(X(i)=x(i)|Y=yk)jP(Y=yj)i=1nP(X(i)=x(i)|Y=yj)

由于上式分母的取值不依赖于样本的类属 yj ,于是,朴素贝叶斯分类器可简化为:
y=argmaxykP(Y=yk)i=1nP(X(i)=x(i)|Y=yk)

  条件独立性假设是一个较强的假设,使朴素贝叶斯分类变得简单易于实现,其“朴素”一名也由此得来。但是其简单是以牺牲分类准确率为代价的,不过在实际应用中,该方法仍能取得一定的效果。

3. 朴素贝叶斯学习算法

  学习朴素贝叶斯分类器,需要估计参数 P(Y=yk) P(X(i)=x(i)|Y=yk) 。如果输入 X 为离散值,其参数通常采用极大似然法来估计。先验概率的极大似然估计为:

P(Y=yk)=N(Y=yk)N
N(Y=yk) 表示取值为 yk 的样本个数。假设输入的第 i 个特征 X(i)可能取值为 xij ,那么条件概率 P(X(i)=xij|Y=yk) 的极大似然估计为:

P(X(i)=xij|Y=yk)=N(X(i)=xij,Y=yk)N(Y=yk)

  然而,采用极大似然估计存在的一个问题是,如果训练样本中某一个特征的取值不存在,其条件概率就为0,进而导致后验概率为0,影响分类准确度。解决该问题的方法是采用平滑估计,即在随机变量各个取值的频数上加上一个平滑因子,假设平滑因子在随机变量所有取值上是均等的,那么平滑估计为:
P(X(i)=xij|Y=yk)=N(X(i)=xij,Y=yk)+λN(Y=yk)+λJ

J X(i)的所有可能取值的个数, λ 为平滑的程度,通常取 λ=1 ,此时该平滑称为拉普拉斯平滑。
  如果输入 X 为连续值,对条件概率P(X(i)=x(i)|Y=yk)的估计就不能采用计数的方式了。常用的方法是给定类属 yk ,假设变量 X(i) 服从高斯分布,其均值和方差可用训练样本的均值和方差来估计。

4. 文本分类应用

  文本数据的一个典型特征就是其维度较大,比如一篇文档,会有几千甚至上万个词,但是不同类型或主题的文档所用词汇差距较大,可以不考虑词汇出现的顺序,即采用bag of words模型,假设文本中每个词的出现都是独立的。基于此类假设的文本分类问题,可以采用朴素贝叶斯方法进行求解。
  以下例子取自《信息检索导论》一书,有训练集和测试集如下:

文档ID文档中的词属于 c=China
训练集1Chinese Beijing ChineseYes
2Chinese Chinese ShanghaiYes
3Chinese MacaoYes
4Tokyo Japan ChineseNo
测试集5Chinese 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
然后,计算测试集数据属于各类别的概率:

P(c|d5)=P(c)P(Chinese|c)3P(Tokyo|c)P(Japan|c)34(37)3114114=0.0003

P(c¯|d5)=P(c¯)P(Chinese|c¯)3P(Tokyo|c¯)P(Japan|c¯)14(29)32929=0.0001

于是,分类器会将测试集数据归于China类。

5. 总结

  本文详述了朴素贝叶斯分类方法,并以一个简单的文本分类为例介绍其应用。朴素贝叶斯的朴素体现在对各个特征的独立性假设,加上独立性假设后,大大减少了参数假设空间,其学习与预测大为简化。
  尽管条件独立性假设很朴素,但是朴素贝叶斯分类器的分类效果依然很好,即使各特征之间存在较强的相关性。The Optimality of Naïve Bayes一文给出了一种解释,简述如下:特征之间的相关性可能在不同类别中均匀分布,不同特征的相关性可能相互抵消,因此,独立性假设会改变分类的后验概率大小,但不会改变其相对大小,所以不会影响分类结果。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值