龙源期刊网 http://www.qikan.com.cn
朴素贝叶斯分类算法的改进及其应用
作者:郭英明 李虹利
来源:《科学导报·学术》2018年第01期
摘要: 基于贝叶斯理论的朴素贝叶斯(NB)方法是一种简单有效的分类方法。它也是机器学习领域中使用最广泛的分类算法之一。本文介绍了朴素贝叶斯分类算法的概念,并研究了基于朴素贝叶斯算法的数据分类。实际应用表明,朴素贝叶斯算法是一种有效的分类算法。 关键词: 朴素贝叶斯分类算法;改进;应用
【中图分类号】 TP301.6【文献标识码】A【文章编号】2236-1879(2018)01-0014-02 前言
朴素贝叶斯分类法有很多优点,不但有扎实的理论基础,而且还有高效率和高精度的计算。朴素贝叶斯分类算法假设属性相互独立,可以有效降低问题的复杂度和复杂度。 1相关方法与概念 1.1朴素贝叶斯算法。
文档d={t1,t2,t3,...tn}属于每个类别的条件概率,计算公式如下:
为了确定文档d={t1,t2,t3,...,tn}属于哪个类别,计算d属于每个类别的概率。如果哪个类别的概率较大,则d的分类结果就是相应的类别。当计算d属于每个类别的概率时,P(d)是相同的。所以要使式(1)最大化,只需要最大化分子即可。展开它,结果如(2)所示,这是朴素贝叶斯分类器表达式。
基于上述,我们知道在计算文档d属于哪个概率时,只需要分别计算类别概率和特征的类别条件概率。目前,计算这两种概率的方法主要有两种,分别产生两种模型,即多项式模型和伯努利模型。 1.2多项式模型。
由于多项式模型的粒度是以字为单位的,所以这样做的好处在于,根据每个字的出现次数,这个信息可以在对文档类别进行分类时测量和判断不同类别的文档之间的字频差异。因此,该模型对问题和文档分类具有重要的参考价值。当使用多项式模型计算条件概率时,相应的两个概率分别计算为(3)和(4)。类别的概率是
文档d={t1,t2,t3,...,tn}属于每个类别的条件概率,计算如下:
龙源期刊网 http://www.qikan.com.cn
为了确定文档d={t1,t2,t3,...,tn}属于哪个类别,计算d属于每个类别的概率。如果哪个类别的概率较大,则d的分类结果就是相应的类别。当计算d属于每个类别的概率时,P(d)是相同的。所以要最大化方程(1),你只需要最大化分子。展开它,结果如(2)所示,这是一个朴素的贝叶斯分类器表达式。
count(ci)是类别ci中的文档数,count(D)是训练集中文档的总数,TFci(tj)是特征tj出现在类别ci中的频率,TFci是总数计数(特征)是类别ci中的词的特征空间的维度。为了避免训练集中其他属性的属性值被“擦除”,在概率值的计算中,“概率”的值通常是“平滑的”,然后将分母和分母加到分子来计算概率正确以避免分子或分母为零的情况。 1.3伯努利模型。
伯努利模型的粒度是基于文档的。伯努利模型范畴概率计算方法与多项式模型一致。区别在于计算特征的条件条件概率的方式。伯努利模型的特殊等式的条件概率的计算如方程(5)。
DFci(tj)是分类ic中具有特征jt的文档的数目,而DFci是分类ci中的文档的总数目。类似于多项式模型,将0.01加到分子上是对这个概率计算的修正。本文改进的贝叶斯增量算法采用伯努利模型进行计算。 1.4朴素贝叶斯增量算法。
朴素贝叶斯分类算法是一种有监督的学习分类算法。贝叶斯分类算法的预测能力与训练语料的完备性密切相关。训练语料越完备,预测能力越强,综合能力越强。在实践中,分类器训练语料库具有循序渐进的过程,难以离开。在这种情况下,传统的方法是使用一批已经清理过的标签语料来训练分类器。当训练集语料库更新时,分类器被重新训练。但是这种方法导致更多的时间浪费和计算成本。
为了克服朴素贝叶斯分类算法的上述缺点,学者提出了一种增量学习的朴素贝叶斯算法来弥补。增量学习算法一般有两种形式:1)有标注语料的增量,第一次训练后,再次收集新批注释的语料库,然后新增这些语料库来更新分类器;2)未标记的语料库增量,在使用分类器的过程中,对未识别的语料进行分类,并将语料添加到训练集中,根据自动分类的类别更新分类器。
在未标注的语料库增量中,显然不是所有未识别的语料库都可以用来更新分类器,因为分类器的初始分类效果不好,肯定会出现分类错误,错误分类的语料库更新分类器只会进行分类更差。因此,需要对这些分类的语料进行适当的筛选,用于更新分类器的语料库需要进行筛选。本文参考和借鉴了罗福兴等的公式,如式(6)所示,θi是语料库属于类别i的概率,θt是分类器分类结果类别的概率。
龙源期刊网 http://www.qikan.com.cn
筛选样本以进行增量更新后,将样本添加到训练集中,分类器将逐步更新。假设增量文本属于类别ci,则需要更新每个类别的类别概率和特征的类别条件概率分别为公式(7)和(8),文档数量更新定义为公式(9)和等式(10)。
其中D是训练集文档的总数,CD是C类文档的数量,C(C)是c类文档中出现特征ct的文档数。本文只对概率和文档数量进行更新的增量方法称为传统的增量学习方法。 2应用实例
在本节中,我们给出一个使用朴素贝叶斯算法进行数据分类的例子,以说明朴素贝叶斯算法的有效性。 2.1数据集。
本文使用朴素贝叶斯算法对UCI数据库中的劳工数据集进行分类。劳动力数据集包括17个属性,共57个样本。 2.2评价指标。
本文中,分类算法的准确性来衡量性能。分类器对样本进行分类有四种情况。 TP:正确分类为属于该类别的样本数量。 TN:正确分类为不属于这一类别的样本数量。 FP:错误分类为属于该类别的样本数。 FN:错误分类为不属于这个类别的样本数量。
根据以上四种情况,可以根据精度评估分类性能。精度的定义如下: 2.3分类结果。
为了验证和比较SVM的分类性能,实验还包括使用C4.5决策树算法和DecisionStump算法进行分类的结果。在实验中,评估分类性能的方法采用了十倍交叉验证方法。根据实验分析,Na veBayes算法的分类精度高于C4.5算法和DecisionStump算法。其中,使用朴素贝叶斯算法对数据集劳动进行分类,得到的精度为89.4%,比C4.5算法高15.8%,比DecisionStump算法高8.7个百分点。 3结束语