基于朴素贝叶斯分类器的文本分类算法.doc

上传人:壹****1 文档编号:559764025 上传时间:2024-01-20 格式:DOC 页数:7 大小:500KB
返回 下载 相关 举报
基于朴素贝叶斯分类器的文本分类算法.doc_第1页
第1页 / 共7页
基于朴素贝叶斯分类器的文本分类算法.doc_第2页
第2页 / 共7页
基于朴素贝叶斯分类器的文本分类算法.doc_第3页
第3页 / 共7页
基于朴素贝叶斯分类器的文本分类算法.doc_第4页
第4页 / 共7页
基于朴素贝叶斯分类器的文本分类算法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于朴素贝叶斯分类器的文本分类算法.doc》由会员分享,可在线阅读,更多相关《基于朴素贝叶斯分类器的文本分类算法.doc(7页珍藏版)》请在金锄头文库上搜索。

1、基于朴素贝叶斯分类器的文本分类算法(上)2010-02-21 10:23:43|分类: Lucene |标签: |字号大中小订阅 转载请保留作者信息:作者:phinecos(洞庭散人)Blog:http:/ 本文缘起于最近在读的一本书- Tom M.Mitchell的机器学习,书中第6章详细讲解了贝叶斯学习的理论知识,为了将其应用到实际中来,参考了网上许多资料,从而得此文。文章将分为两个部分,第一部分将介绍贝叶斯学习的相关理论(如果你对理论不感兴趣,请直接跳至第二部分)。第二部分讲如何将贝叶斯分类器应用到中文文本分类,随文附上示例代码。Introduction我们在概率论和数理统计这门课的第一

2、章都学过贝叶斯公式和全概率公式,先来简单复习下:条件概率 定义 设A, B是两个事件,且P(A)0 称P(BA)=P(AB)/P(A)为在条件A下发生的条件事件B发生的条件概率。乘法公式 设P(A)0 则有P(AB)=P(BA)P(A) 全概率公式和贝叶斯公式定义 设S为试验E的样本空间,B1, B2, Bn为E的一组事件,若BiBj=, ij, i, j=1, 2, ,n; B1B2Bn=S则称B1, B2, , Bn为样本空间的一个划分。定理 设试验E的样本空间为,A为E的事件,B1, B2, ,Bn为的一个划分,且P(Bi)0 (i=1, 2, n),则P(A)=P(AB1)P(B1)+

3、P(AB2)+ +P(ABn)P(Bn)称为全概率公式。定理 设试验俄E的样本空间为S,A为E的事件,B1, B2, ,Bn为的一个划分,则 P(BiA)=P(ABi)P(Bi)/P(ABj)P(Bj)=P(BAi)P(Ai)/P(A)称为贝叶斯公式。说明:i,j均为下标,求和均是1到n 下面我再举个简单的例子来说明下。示例1考虑一个医疗诊断问题,有两种可能的假设:(1)病人有癌症。(2)病人无癌症。样本数据来自某化验测试,它也有两种可能的结果:阳性和阴性。假设我们已经有先验知识:在所有人口中只有0.008的人患病。此外,化验测试对有病的患者有98%的可能返回阳性结果,对无病患者有97%的可能

4、返回阴性结果。上面的数据可以用以下概率式子表示: P(cancer)=0.008,P(无cancer)=0.992P(阳性|cancer)=0.98,P(阴性|cancer)=0.02P(阳性|无cancer)=0.03,P(阴性|无cancer)=0.97假设现在有一个新病人,化验测试返回阳性,是否将病人断定为有癌症呢?我们可以来计算极大后验假设:P(阳性|cancer)p(cancer)=0.98*0.008 = 0.0078P(阳性|无cancer)*p(无cancer)=0.03*0.992 = 0.0298因此,应该判断为无癌症。贝叶斯学习理论 贝叶斯是一种基于概率的学习算法,能够用

5、来计算显式的假设概率,它基于假设的先验概率,给定假设下观察到不同数据的概率以及观察到的数据本身(后面我们可以看到,其实就这么三点东西,呵呵)。 我们用P(h)表示没有训练样本数据前假设h拥有的初始概率,也就称为h的先验概率,它反映了我们所拥有的关于h是一个正确假设的机会的背景知识。当然如果没有这个先验知识的话,在实际处理中,我们可以简单地将每一种假设都赋给一个相同的概率。类似,P(D)代表将要观察的训练样本数据D的先验概率(也就是说,在没有确定某一个假设成立时D的概率)。然后是P(D/h),它表示假设h成立时观察到数据D的概率。在机器学习中,我们感兴趣的是P(h/D),也就是给定了一个训练样本

6、数据D,判断假设h成立的概率,这也称之为后验概率,它反映了在看到训练样本数据D后假设h成立的置信度。(注:后验概率p(h/D)反映了训练数据D的影响,而先验概率p(h)是独立于D的)。P(h|D) = P(D|h)P(h)/p(D),从贝叶斯公式可以看出,后验概率p(h/D)取决于P(D|h)P(h)这个乘积,呵呵,这就是贝叶斯分类算法的核心思想。我们要做的就是要考虑候选假设集合H,并在其中寻找当给定训练数据D时可能性最大的假设h(h属于H)。 简单点说,就是给定了一个训练样本数据(样本数据已经人工分类好了),我们应该如何从这个样本数据集去学习,从而当我们碰到新的数据时,可以将新数据分类到某一

7、个类别中去。那可以看到,上面的贝叶斯理论和这个任务是吻合的。朴素贝叶斯分类 也许你觉得这理论还不是很懂,那我再举个简单的例子,让大家对这个算法的原理有个快速的认识。(注:这个示例摘抄自机器学习这本书的第三章的表3-2.)假设给定了如下训练样本数据,我们学习的目标是根据给定的天气状况判断你对PlayTennis这个请求的回答是Yes还是No。DayOutlookTemperatureHumidityWindPlayTennisD1SunnyHotHighWeakNoD2SunnyHotHighStrongNoD3OvercastHotHighWeakYesD4RainMildHighWeakYe

8、sD5RainCoolNormalWeakYesD6RainCoolNormalStrongNoD7OvercastCoolNormalStrongYesD8SunnyMildHighWeakNoD9SunnyCoolNormalWeakYesD10RainMildNormalWeakYesD11SunnyMildNormalStrongYesD12OvercastMildHighStrongYesD13OvercastHotNormalWeakYesD14RainMildHighStrongNo可以看到这里样本数据集提供了14个训练样本,我们将使用此表的数据,并结合朴素贝叶斯分类器来分类下面

9、的新实例:(Outlook = sunny,Temprature = cool,Humidity = high,Wind = strong)我们的任务就是对此新实例预测目标概念PlayTennis的目标值(yes或no).由上面的公式可以得到:可以得到: P(PlayTennis =yes) = 9/14 = 0.64,P(PlayTennis=no)=5/14 = 0.36 P(Wind=Stong| PlayTennis =yes)=3/9=0.33,p(Wind=Stong| PlayTennis =no)=3/5 = 0.6其他数据类似可得,代入后得到:P(yes)P(Sunny|yes)P(Cool|yes)P(high|yes)P(Strong|yes) = 0.0053P(no)P(Sunny|no)P(Cool|no)P(high|no)P(Strong|no)=0.0206因此应该分类到no这一类中。贝叶斯文本分类算法 好了,现在开始进入本文的主旨部分:如何将贝叶斯分类器应用到中文文本的分类上来?根据联合概率公式(全概率公式)M训练文本集合中经过踢出无用词去除文本预处理之后关键字的数量。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号