[机器学习算法详解]朴素贝叶斯算法—以词集文本分类问题为例

朴素贝叶斯算法—以词集文本分类问题为例

一 文本分类

机器学习的一个重要应用是文本的自动分类。在文本分类中,这个文本是一个实例,由各种词汇构成,我们可以对新闻报道、用户留言、政府公文等其他任意类型的文本进行分类。通过观察文本中出现的词汇,把每个词汇的出现或者不出现、出现的次数等作为一个特征,这样可以把一个文本抽象成这些词汇的特征集合。文本分类问题可以抽象成词集模型和词袋模型,其中词集模型规定每个词汇只能存在出现或者不出现两种形式,而词袋模型则规定每个词汇可以出现0次或更多。本文讨论词集模型。

二 词集模型建立

词集模型规定每个词汇只能存在出现或者不出现两种形式。样本集可以定义为{X,Y} ,其中样本自变量X(m行n列的矩阵)有m个样本,每个样本有n个特征,每个样本的第j个特征取值范围为{0,1},0表示词汇未出现,1表示词汇出现。样本因变量Y(m行1列的矩阵),有m个标签值,每个标签值取值范围为1~k,表示本文可以被分为k类。假设样本集独立同分布。独立同分布的意义是每个样本的每个特征值都服从于两点分布,每个类别的标签值都服从于伯努利分布。

三 朴素贝叶斯算法

朴素贝叶斯算法分为两个部分,分别是学习部分和分类部分。学习部分是通过已标记的样本,使用极大似然估计方法来获得先验概率和条件概率,以此来训练分类器。分类部分通过期望风险最小化原理来使得后验概率最大化,以此来用分类器进行分类。

1. 学习部分

朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y),具体的学习先验概率分布和条件概率分布,先验概率分布为 P(Y=ck) ,条件概率分布为 P(xj=1|Y=ck)
首先计算先验概率分布。对于每一个类别,标签值满足伯努利分布,很显然某个文本被分到政府公文这个类别具有一定概率,并且只存在是与否两种情况,因此满足伯努利分布。设所有测试样本中被分到第k类别有p个,设先验概率为 ϕ ,故对参数的似然函数为

L(ϕ)=ϕp(1ϕ)Mp
根据极大似然估计法,对似然函数求最大,即令似然函数对 ϕ 的导数为0,求解即得出先验概率分布为
P(Y=ck)=Mi=1I(y(i)=ck)M
先验概率分布可以理解为每个类的样本占样本集的比例。
然后计算条件概率分布。根据极大似然估计,同理于先验概率分布,可得
P(xj=1|Y=ck)=Mi=1I(x(i)=1,y(i)=ck)Mi=1I(y(i)=ck)
条件概率分布可以理解为每个词汇在某个类别中是否出现的概率。
朴素贝叶斯算法的学习部分主要通过训练样本集获得先验概率和条件概率,先验概率是通过对样本因变量,求得每个类别所占的比例。条件概率是通过对样本自变量的每一个特征,求出每个特征为1的样本所占的比例,可以理解为每个词汇在每个类别中出现的概率。这样,分类器的参数集合 Θ (包含先验概率分布和条件概率分布)已经学习完成。

2. 分类部分

朴素贝叶斯算法进行分类的时候,对于一个给定的实例x,x是每个词汇是否出现(每个特征是否为1)的集合,通过学习部分训练出来的参数集 Θ 来判断这个实例属于哪个类别。运用逆概公式可以求出后验概率 P(Y=ck|X=x) 。这里使用到了学习部分学习到的先验概率分布这一参数。因为题目假设X满足独立同分布,因此每个x相互条件独立,第i个特征的取值并不影响第j个特征的取值,可以理解为一篇文章中是否出现NIPS这个词和是否出现perfect这个词没有关系,故

P(X=x|Y=ck)=j=1NP(X=xj|Y=ck)
因为在实例中,每个词汇只存在出现或者不出现,并且二者都有一定概率,因此满足两点分布。这里使用了学习部分学习到的条件概率分布这一参数。某个词汇出现或不出现取决于对应的特征是否为1。通过判断最大的后验概率,得知实例x被分到哪一类中,由于不管标签为何值,分母都不发生变化,因此,分类器可以表示为
y=argmaxckP(Y=ck)j=1NP(X=xj|Y=ck;Θ)

3. 算法流程

  1. 根据给定的已标记的样本集Dl,学习训练出先验概率分布和条件概率分布。
  2. 对于未标记的测试集Du,对于每一个测试实例,根据第一步学习的分类器参数,分别计算被分到每一个类别的概率,概率最大的类别即为测试实例的标签值 。

四 实验

测试集使用WEBKB测试集,该测试集通过对网页中文本进行词汇提取,然后对网页进行不同分类。写者已经将测试集进行处理成词集模型。数据集中有两个变量,content表示各个网页文本中是否出现各种词汇,label表示各个网页的分类。数据集总共有1040个样本,且均为已标记数据,词汇集由2500个单词组成。
通过交叉检验法进行测试,交叉检验法是将数据集划分为等长的子数据集,每次迭代选择一个子数据集为测试集,其余为训练集,这样计算的结果求平均之后就是平均准确率。随着交叉区间划分不断扩大,从分为2块到分为10块,计算的平均准确率不断上升,如下图。平均准确率变化曲线

五 总结

机器学习的一个重要应用是文本的自动分类。本文对一种简单的生成学习算法——朴素贝叶斯算法进行详细介绍、证明和实验,希望对机器学习的初学者有所帮助,也使自己进一步加深理解。今后会对更多机器学习算法进行总结,谢谢阅读!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值