朴素贝叶斯分类在机器学习中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
朴素贝叶斯分类在机器学习中的应用
贝叶斯分类技术在众多分类技术中占有着重要的地位。
它属于统计学分类的范畴,是一种非规则的分类方法。
贝叶斯分类方法的主要内容是通过对已分类的样本子集进行训练,学习归纳出分类函数(对离散变量的预测称作分类,对连续变量的分类成为回归),利用训练得到的分类器实现对未分类数据的分类。
在众多贝叶斯分类技术中,朴素贝叶斯分类算法是其中应用最多、表现效果最好的一项贝叶斯分类技术。
一、朴素贝叶斯分类法简介
朴素贝叶斯分类法来源于贝叶斯定理
其中称为先验概率,称为后验概率,称为现象概率,称为条件概率。
贝叶斯定理描述的是如何用已知的事实去推理未知的概率。
在进行预测前,我们有事件A
发生的概率P(A),有对事件B的预测概率P(B),还有已知B发生的条件下事件A发生的概率,由这三个概率可以推理出在事件A发生的条件下事件B发生的概率,这一过程也可以解释为我们用事件A的相关信息去修正B发生的概率,在已知A的一些信息后去更新对事件B的认识。
朴素贝叶斯分类法顾名思义,是完全基于贝叶斯定理而来的,其定理形式为
其中Category是类别,Document是待分类事物,定理描述的是根据各种先验概率和概率,来计算某事物属于某类别的概率。
朴素贝叶斯分类法即是利用极大似然的思想,通过比较事物被分到不同类别的概率,来给出一个最优的结果,把事物分到概率最大的那个类别中去。
这一比较和分类的过程在定理中,事物Document是由若干特征条件组成的,即
需要提到的是,在上面的公式中,分子部分满足
用数学语言表述为:
设特征向量x中有n个特征,则概率为
这称为定理成立的“条件独立性假设”,即事物的特征之间是相互独立的,这也即是定理名称中“朴素”一词的含义。
所谓独立,是指的是统计意义上的独立,即一个特征或者单词出现的可能性与它和其他单词相邻没有关系。
举个例子来说,假设单词bacon出现在delicious 和出现在ugly后面的概率相同,当然这显然是不正确的,但这确实是朴素贝叶斯分类的一条前提假设。
虽然这样做可能会对预测结果的准确性造成一定的影响,但实际上,相比于使用此公式对问题求解的简化程度,这一点误差是完全可以接受的,在实践中也能证明,朴素贝叶斯的实际效果是相当好的。
二、各部分概率的解释与计算
在朴素贝叶斯定理中,为求得,需要首先取得三个概率:先验概率,条件概率,和现象概率。
这三个概率并不是都很容易求出来的,而如何准确获取这三个概率也成为机器学习领域研究的热门话题。
在这里我以垃圾邮件分类为例来说明这三个概率的计算,假设在如下5封邮件中,统计如下几个词在邮件中是否出现,并统计邮件是否被标记为垃圾邮件:
现在给定一封邮件,四个词在其中出现的情况分别为0, 1, 1, 1, 0,要判断该封邮件是否为垃圾邮件。
1. 先验概率
理论上,先验概率是出现事物属于某一类的客观概率,但在实际应用中,先验概率往往
是不知道的,不能当作已知参数来用。
一种常用的估计先验概率的方法是通过考察大量样本,用频率来估计概率,这就是机器学习所要实现的事情。
假设某分类名称为,考察n个样本,事物属于该类的概率为
其中,表示属于类的样本数;表示所有的样本数。
在本例中,如果要考查“是垃圾邮件”这一特征,则根据样本计算如下:
是垃圾邮件
理论上,当样本数趋于无限大时,上式所代表的频数即可以代表的频率,为了得到这个准确的频率,需要给予机器大量的样本,机器通过自动学习,利用大量样本的数据特征来不断完善。
在某些分类应用中,由于一些样本特殊难以采集的特点,还有一些样本分布集中的情况,这时的先验概率是很难求得的,还需要通过经验判断、咨询等其他途径来获得相对比较准确的先验概率,比如对于一封邮件是否为垃圾邮件,或许此数据在国家网络中心那里早已有过统计。
2. 条件概率
条件概率表示在所属的类别中,观察到现象x出现的概率,其中x由特征共同组成,特征向量x中的每个特征都可以通过极大似然估计的方法来求得,也就是简单地求某个类别中的频率,公式如下:
其中是在所有属于类别的训练样本中,特征出现的次数;是在所有属于类别
的训练样本中,所有特征出现的次数。
如上例,在给定的待求问题中,要统计purchase, deal, discount同时出现在垃圾邮件中的概率,计算为:
3. 现象概率
现象概率是独立于类别的,这个现象概率单指某一事物或特征出现的概率,计算时通过统计所有样本中该事物或特征出现的概率,而与类别无关。
如上例中要统计purchase, deal, discount出现的概率,则
但通过样本算出的现象概率难以保证和实际的现象概率是相符的,这与先验概率同样需要机器通过大量样本的学习来得到一个相对比较准确的值。
另一方面,现象概率其实是没有必要求出的,因为我们在给定时,我们需要比较的是在的条件下不同分类出现的概率,即求,(或者多个的联合分布),而在这其中可以视作常量,因此公式中的分母可以视作常量,在比较的时候该值不会对比较结果造成影响,因此也就没有必要特意求出该值。
4. 附加平滑
有时在求时,会发生在该分类中某特征没有出现的现象,那么在最终结果中,整个后验概率就会变为0。
为了避免0概率的出现,我们可以加上平滑项,把上面的条件概率公式加强为以下形式:
其中是在所有属于类别的训练样本中,特征出现的次数;是在所有属于类别
的训练样本中,所有特征出现的次数;是附加的平滑参数,时称为Lidstone smoothing;
时称为Laplace smoothing;n是特征数。
至此,朴素贝叶斯分类算法公式中的所有概率我们都已得到了计算方法,下一步需要做的就是通过机器学习的方法获取大量样本,来不断地通过样本特征去更新先验概率分布和条件概率分布,以使得由此预测的后验分布更加准确可信。
三、朴素贝叶斯分类的优缺点比较
1. 优点:
1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量
超出内存时,我们可以一批批的去增量训练。
3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。
2. 缺点:
1)理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。
但是实际上并非
总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用
中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
而在属性相关性较小时,朴素贝叶斯性能最为良好。
对于这一点,有半朴素贝叶斯
之类的算法通过考虑部分关联性适度改进。
2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,
因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一
定的错误率。
4)对输入数据的表达形式很敏感。
朴素贝叶斯分类算法在文档分类、垃圾邮件处理、词义分析归纳等方面都有重要的应用。
总之,作为一种从经典的贝叶斯定理发展来的分类算法,朴素贝叶斯分类算法有其独特的应用领域和良好的适用性,在机器学习发展日益火热的今天,不失为一种有待进一步开发、潜力巨大的实用算法在,这也是概率论知识与社会和实际生活紧密接轨的一个非常好的佐证。