贝叶斯算法之文本分类

本文详细介绍了贝叶斯算法在文本分类中的应用,包括贝叶斯原理、朴素贝叶斯分类器及其两种模型:多项式模型和伯努利模型。文章通过实例展示了如何使用这两种模型进行文本分类,以及训练和分类的具体步骤,强调了条件独立性假设在朴素贝叶斯分类中的重要性。此外,还讨论了两种模型的区别,并提供了代码实现的概述。

 

第1章 贝叶斯原理

1.1 贝叶斯公式

设A、B是两个事件,且P(A)>0,称

clip_image002

为在事件A发生的条件下事件B发生的条件概率

乘法公式 P(XYZ)=P(Z|XY)P(Y|X)P(X)

全概率公式 P(X)=P(X|Y1)+ P(X|Y2)+…+ P(X|Yn)

贝叶斯公式

clip_image006

以上公式,请读者参考《概率论与数理统计(第五版)》的1.4节“条件概率”(这里将原书中的A换成了X,B换成了Y),获得更深的理解。

1.2贝叶斯定理在分类中的应用

在分类(classification)问题中,常常需要把一个事物分到某个类别。一个事物具有很多属性,把它的众多属性看做一个向量,即x=(x1,x2,x3,…,xn),用x这个向量来代表这个事物。类别也是有很多种,用集合Y={y1,y2,…ym}表示。如果x属于y1类别,就可以给x打上y1标签,意思是说x属于y1类别。这就是所谓的分类(Classification)

x的集合记为X,称为属性集。一般X和Y的关系是不确定的,你只能在某种程度上说x有多大可能性属于类y1,比如说x有80%的可能性属于类y1,这时可以把X和Y看做是随机变量,P(Y|X)称为Y的后验概率(posterior probability),与之相对的,P(Y)称为Y的先验概率(prior probability)[2]

在训练阶段,我们要根据从训练数据中收集的信息,对X和Y的每一种组合学习后验概率P(Y|X)。分类时,来了一个实例x,在刚才训练得到的一堆后验概率中找出所有的P(Y|x), 其中最大的那个y,即为x所属分类。根据贝叶斯公式,后验概率为

clip_image008

在比较不同Y值的后验概率时,分母P(X)总是常数,因此可以忽略。先验概率P(Y)可以通过计算训练集中属于每一个类的训练样本所占的比例容易地估计。

我们来举个简单的例子,让读者对上述思路有个形象的认识[3]

考虑一个医疗诊断问题,有两种可能的假设:(1)病人有癌症。(2)病人无癌症。样本数据来自某化验测试,它也有两种可能的结果:阳性和阴性。假设我们已经有先验知识:在所有人口中只有0.008的人患病。此外,化验测试对有病的患者有98%的可能返回阳性结果,对无病患者有97%的可能返回阴性结果。

上面的数据可以用以下概率式子表示:

P(cancer)=0.008,P(无cancer)=0.992

P(阳性|cancer)=0.98,P(阴性|cancer)=0.02

P(阳性|无cancer)=0.03,P(阴性|无cancer)=0.97

假设现在有一个新病人,化验测试返回阳性,是否将病人断定为有癌症呢?

在这里,Y={cancer,无cancer},共两个类别,这个新病人是一个样本,他有一个属性阳性,可以令x=(阳性)。

我们可以来计算各个类别的后验概率:

P(cancer | 阳性) = P(阳性 | cancer)p(cancer)=0.98*0.008 = 0.0078

P(无cancer | 阳性) =P(阳性 | 无cancer)*p(无cancer)=0.03*0.992 = 0.0298

因此,应该判断为无癌症。

在这个例子中,类条件概率,P(cancer|阳性)和P(无cancer|阳性)直接告诉了我们。

一般地,对类条件概率P(X|Y)的估计,有朴素贝叶斯分类器和贝叶斯信念网络两种方法,这里介绍朴素贝叶斯分类器。

1.3朴素贝叶斯分类器

1、条件独立性

给定类标号y,朴素贝叶斯分类器在估计类条件概率时假设属性之间条件独立。条件独立假设可以形式化的表达如下:

clip_image010

其中每个训练样本可用一个属性向量X=(x1,x2,x3,…,xn)表示,各个属性之间条件独立。

比如,对于一篇文章,

Good good study,Day day up.

可以用一个文本特征向量来表示,x=(Good, good, study, Day, day , up)。一般各个词语之间肯定不是相互独立的,有一定的上下文联系。但在朴素贝叶斯文本分类时,我们假设个单词之间没有联系,可以用一个文本特征向量来表示这篇文章,这就是“朴素”的来历。

2、朴素贝叶斯如何工作

有了条件独立假设,就不必计算X和Y的每一种组合的类条件概率,只需对给定的Y,计算每个xi的条件概率。后一种方法更实用,因为它不需要很大的训练集就能获得较好的概率估计。

3、估计分类属性的条件概率

P(xi|Y=y)怎么计算呢?它一般根据类别y下包含属性xi的实例的比例来估计。以文本分类为例,xi表示一个单词,P(xi|Y=y)=包含该类别下包含单词的xi的文章总数/ 该类别下的文章总数。

4、贝叶斯分类器举例

假设给定了如下训练样本数据,我们学习的目标是根据给定的天气状况判断你对PlayTennis这个请求的回答是Yes还是No。

Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值