朴素贝叶斯分类器的应用

上传人:20****03 文档编号:153198597 上传时间:2020-11-27 格式:DOC 页数:20 大小:316KB
返回 下载 相关 举报
朴素贝叶斯分类器的应用_第1页
第1页 / 共20页
朴素贝叶斯分类器的应用_第2页
第2页 / 共20页
朴素贝叶斯分类器的应用_第3页
第3页 / 共20页
朴素贝叶斯分类器的应用_第4页
第4页 / 共20页
朴素贝叶斯分类器的应用_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《朴素贝叶斯分类器的应用》由会员分享,可在线阅读,更多相关《朴素贝叶斯分类器的应用(20页珍藏版)》请在金锄头文库上搜索。

1、朴素贝叶斯分类器的应用作者:阮一峰日期:2013年12月16日生活中很多场合需要用到分类,比如新闻分类、病人分类等等。本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法。一、病人分类的例子让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。症状职业疾病打喷嚏护士感冒打喷嚏农夫过敏头痛建筑工人脑震荡头痛建筑工人感冒打喷嚏教师感冒头痛教师脑震荡现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?根据贝叶斯定理:P(A|B) = P(B|A) P(A) / P(B)可得P(感

2、冒|打喷嚏x建筑工人)= P(打喷嚏x建筑工人|感冒) x P(感冒)/ P(打喷嚏x建筑工人)假定打喷嚏和建筑工人这两个特征是独立的,因此,上面的等式就变成了P(感冒|打喷嚏x建筑工人)= P(打喷嚏|感冒) x P(建筑工人|感冒) x P(感冒)/ P(打喷嚏) x P(建筑工人)这是可以计算的。P(感冒|打喷嚏x建筑工人)= 0.66 x 0.33 x 0.5 / 0.5 x 0.33= 0.66因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。这就是贝叶斯分类器的基本方法:在统计资料的基础上

3、,依据某些特征,计算各个类别的概率,从而实现分类。二、朴素贝叶斯分类器的公式假设某个体有n项特征(Feature),分别为F1、F2、.、Fn。现有m个类别(Category),分别为C1、C2、.、Cm。贝叶斯分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值:P(C|F1F2.Fn)= P(F1F2.Fn|C)P(C) / P(F1F2.Fn)由于 P(F1F2.Fn) 对于所有的类别都是相同的,可以省略,问题就变成了求P(F1F2.Fn|C)P(C)的最大值。朴素贝叶斯分类器则是更进一步,假设所有特征都彼此独立,因此P(F1F2.Fn|C)P(C)= P(F1|C)P(F2

4、|C) . P(Fn|C)P(C)上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。虽然所有特征彼此独立这个假设,在现实中不太可能成立,但是它可以大大简化计算,而且有研究表明对分类结果的准确性影响不大。下面再通过两个例子,来看如何使用朴素贝叶斯分类器。三、账号分类的例子本例摘自张洋的算法杂货铺-分类算法之朴素贝叶斯分类。根据某社区网站的抽样统计,该站10000个账号中有89%为真实账号(设为C0),11%为虚假账号(设为C1)。C0 = 0.89C1 = 0.11接下来,就要用统计资料判断一个账号的真实性。假定某一个账号有以下三个特征:

5、F1: 日志数量/注册天数F2: 好友数量/注册天数F3: 是否使用真实头像(真实头像为1,非真实头像为0)F1 = 0.1F2 = 0.2F3 = 0请问该账号是真实账号还是虚假账号?方法是使用朴素贝叶斯分类器,计算下面这个计算式的值。P(F1|C)P(F2|C)P(F3|C)P(C)虽然上面这些值可以从统计资料得到,但是这里有一个问题:F1和F2是连续变量,不适宜按照某个特定值计算概率。一个技巧是将连续值变为离散值,计算区间的概率。比如将F1分解成0, 0.05、(0.05, 0.2)、0.2, +三个区间,然后计算每个区间的概率。在我们这个例子中,F1等于0.1,落在第二个区间,所以计算

6、的时候,就使用第二个区间的发生概率。根据统计资料,可得:P(F1|C0) = 0.5, P(F1|C1) = 0.1P(F2|C0) = 0.7, P(F2|C1) = 0.2P(F3|C0) = 0.2, P(F3|C1) = 0.9因此,P(F1|C0) P(F2|C0) P(F3|C0) P(C0)= 0.5 x 0.7 x 0.2 x 0.89= 0.0623P(F1|C1) P(F2|C1) P(F3|C1) P(C1)= 0.1 x 0.2 x 0.9 x 0.11= 0.00198可以看到,虽然这个用户没有使用真实头像,但是他是真实账号的概率,比虚假账号高出30多倍,因此判断这个

7、账号为真。四、性别分类的例子本例摘自维基百科,关于处理连续变量的另一种方法。下面是一组人类身体特征的统计资料。性别身高(英尺)体重(磅)脚掌(英寸)男 6 18012男 5.9219011男 5.5817012男 5.9216510女 5 1006女 5.5 1508女 5.421307女 5.751509已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?根据朴素贝叶斯分类器,计算下面这个式子的值。P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无

8、法分成区间计算。怎么办?这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。“所以,男性的身高为6英尺的概率等于1.5789(大于1并没有关系,因为这里是密度函数的值)”我理解是不是因为最终只是比较相对大小,做一个判定,所以直接采用密度函数的值作为概率值?因为理论上连续变量取某一个具体值的概率

9、都是无穷小。有了这些数据以后,就可以计算性别的分类了。P(身高=6|男) x P(体重=130|男) x P(脚掌=8|男) x P(男)= 6.1984 x e-9P(身高=6|女) x P(体重=130|女) x P(脚掌=8|女) x P(女)= 5.3778 x e-4可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。(完)朴素贝叶斯编辑本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。中文名朴素贝叶

10、斯外文名Naive Bayesian Model简称NBM属于广泛的分类模型之一目录1定义2详细内容3应用4模型1定义编辑学过概率的同学一定都知道贝叶斯定理:这个在250多年前发明的算法,在信息领域内有着无与伦比的地位。贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian) 是其中应用最为广泛的分类算法之一。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。通过以上定理和“朴素”的假定,我们知道:P( Category | Document) = P ( Document | Category )

11、* P( Category) / P(Document)12详细内容编辑分类是将一个未知样本分到几个预先已知类的过程。数据分类问题的解决是一个两步过程:第一步,建立一个模型,描述预先的数据集或概念集。通过分析由属性描述的样本(或实例,对象等)来构造模型。假定每一个样本都有一个预先定义的类,由一个被称为类标签的属性确定。为建立模型而被分析的数据元组形成训练数据集,该步也称作有指导的学习。在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。决策树模型通过构造树来解决分类问题。首先利

12、用训练数据集来构造一棵决策树,一旦树建立起来,它就可为未知样本产生一个分类。在分类问题中使用决策树模型有很多的优点,决策树便于使用,而且高效;根据决策树可以很容易地构造出规则,而规则通常易于解释和理解;决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小;决策树模型的另外一大优点就是可以对有许多属性的数据集构造决策树。决策树模型也有一些缺点,比如处理缺失数据时的困难,过度拟合问题的出现,以及忽略数据集中属性之间的相关性等。3应用编辑和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier,或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率

13、。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。解决这个问题的方法一般是建立一个属性模型,对于不相互独立的属性,把他们单独处理。例如中文文本分类识别的时候,我们可以建立一个字典来处理一些词组。如果发现特定的问题中存在特殊的模式属性,那么就单独处理。这样做也符合贝叶斯概率原理,因为我们把一个词组看作一个单独的模式,例如英文文本处理一些长度不等的单词,也都作为单独独立的模式进行处理

14、,这是自然语言与其他分类识别问题的不同点。实际计算先验概率时候,因为这些模式都是作为概率被程序计算,而不是自然语言被人来理解,所以结果是一样的。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。但这点有待验证,因为具体的问题不同,算法得出的结果不同,同一个算法对于同一个问题,只要模式发生变化,也存在不同的识别性能。这点在很多国外论文中已经得到公认,在机器学习一书中也提到过算法对于属性的识别情况决定于很多因素,例如训练样本和测试样本的比例影响算法的性能。决策树对于文本分类识别,要看具体情况。在属性相关性较小时,NBC模型的性能稍微良好。属性相关性较小的时候,其他的算法性能也很好,这是由于信息熵理论决定的。4模型编辑朴素贝叶斯模型:-Vmap=arg max P( Vj | a1,a2.an)Vj属于V集合其中Vmap是给定一个example,得

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

当前位置:首页 > 办公文档 > 教学/培训

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