多文本分类器组合方法.docx
《多文本分类器组合方法.docx》由会员分享,可在线阅读,更多相关《多文本分类器组合方法.docx(5页珍藏版)》请在冰豆网上搜索。
多文本分类器组合方法
多文本分类器组合方法
摘要:
自由文本分类已经成为当前的研究热点,目前存在的文本分类算法已经很多,分类精度大多在70%以上。
显然,研究存在哪些因素影响分类器的分类效果,并进一步提高当前分类算法的分类精度是十分有意义的。
本文较全面地分析了分类器精度的影响因素,设计了几种分类器选举器,并给出了这些选举器的实验结果,结果表明,合理的选举器设计能适当提高分类器精度。
关键词:
文本分类;分类选举器;装袋;推进
中图分类号:
TP751文献标识码:
A文章编号:
1674-7712(2014)08-0000-03
一、引言
众所周知,因特网上的资源呈指数级增长,许多资料都需要分类,包括结构化和非结构化或半结构化的文档资料,诸如:
网页、电子邮件、自由文本等等。
近年来,文本分类技术已经逐渐与搜索引擎、信息过滤等信息处理技术相结合,有效地提高了信息服务的质量。
文本分类指的是在给定的分类体系下,根据文本的内容自动地确定文本关联的类别。
目前,在进行文本分类时,通常采用向量空间模型(VSM)表示文本,基于VSM的分类器有朴素贝叶斯、KNN、简单向量距离分类法等,这些分类器的实现相对简单,但实际应用中却具有较高的分类精度。
实现基于VSM的分类器,需要对训练例集进行特征提取,得到特征集FS={f1,f2,…,fn},所谓特征就是出现在文本中的词或词组;然后用FS去刻画文本Dk,得Dk的权重向量DkW={w1,w2,…,wn}(i=1,2,…,n),其中wi的值可能是fi在Dk中的词频,也可能是通过TF-IDF计算出来的值[1](视分类器需要而定)。
对于分类器的性能测试,可采用开放测试和封闭测试两种方式。
开放测试指的是测试例集中不包含训练例,而封闭测试则正好相反。
对分类器性能好坏的评价,通常有两个指标:
查准率和查全率[1]。
前者是所有判断的文本中与人工分类结果吻合的文本所占的比例;后者是人工分类结果应有的文本中分类系统吻合的文本所占的比例。
查全率和查准率反映了分类质量的两个方面,两者必须综合考虑,故在实际应用中,人们通常还采用F1指标值来评价分类器的好坏,其数学公式如下:
F1=(查全率*查准率*2)/(查全率+查准率)
(1)
二、影响分类器精度的因素
影响一个分类器性能的因素有很多。
首先,特征子集提取方法对于分类器会产生一定影响。
若一种方法对于各类别的训练例提取出来的特征子集“最能”代表各个类别,显然用于分类时会提高分类器的分类效果。
这就要求提取方法:
(1)对某类别训练例,提取出在该类别训练例中“频繁”出现,而在其它类别训练例中“基本不出现”的特征;
(2)对在各个类别(或某向个类别)中“分布较均匀”的特征(显然对于分类无意义),不进行选取;(3)对于在某类别中“出现次数较少”的特征也不应该入选特征子集。
IG、MI和OddsRatio等方法考虑了上述三个方面[5],在实际使用中应用较多;而DF方法[5]没有充分考虑到
(2),但由于该方法实现起来相对简单,提取效率较高,而且分类效果也非常不错,甚至超过其它方法的分类表现,故不少分类器系统采用了该方法。
其次,训练例的多少及分布会影响分类器性能。
在训练例少的情况下,特征子集提取的效率较高,特征子集维数相对较少,分类效率也较高,但在这种情况下,分类器效果却不理想,原因在于很多本来最能代表某类别的特征,由于在该类别的训练例中出现次数相对较少而不被入选到特征子集中,而出现次数较少的原因就在于训练例太少了。
训练例分布不均匀,指的是某些类别的训练例相对较少,但其它类别训练例却较多,这种情况造成特征子集中特征分布的不均匀,也无法使分类器具有较好表现。
再次,分类类别个数的多少也直接影响分类效果。
道理很显然,如果只有两种类别,分类器对于一个新文本,待判定的情况只有两种,而对于100种类别的情况,其判定可能却有100种。
我们在实验中也验证了这一点。
第四,训练例集中存在着手工分类错误的训练例,显然会影响分类器的性能。
最为重要的影响因素是分类器算法的好坏。
目前,普遍认为是支持向量机具有最好的分类表现,但实现相对复杂,且效率较低。
较广泛使用的是朴素贝叶斯[3]、KNN[4]、简单向量距离[1]等分类法。
当然,还有其它的因素会影响分类器的精度。
因此,研究如何提高分类精度,实际上就是研究如何避免这些影响因素,上述影响要素中有些是可以通过改进分类器算法和特征子集提取算法避免的,有些却是可以人为避免的。
本文主要讨论的是对于分类器算法的改进。
三、装袋和推进方法
装袋和推进是两种改进分类法准确率的技术,它们都是将T个学习得到的分类器C1,C2,…,CT组合起来,旨在创建一个改进的分类器C*。
装袋过程如下[4]:
FORi=1TOTDO
从训练例集S中随机选取训练例子集Si(Si采用放回选样)
从Si中学习得到分类器Ci
ENDFOR
将C1,C2,…,CT装袋得到C*。
对于新文本,C1,C2,…,CT分别判定新文本最有可能的所属类别,由C*统计哪个类别的得票数最高,将该类别输出。
推进方法[2]的主要思想是从训练例学习出一系列的分类器,每一个分类器根据前一个分类器错误分类的实例,对训练集的权重进行修正,再学习新的分类器。
其算法如下:
输入:
N个训练例〈(d1,y1),…,(dn,yn)>
N个训练例的权向量D,Di(i=1,2,…,n)的初始值为1/N
输出:
hT
算法:
FORs=1TOTDO
调用弱学习算法,得到一个假设hs
计算αs=1/2*ln(),其中
IFhs(di)=yiTHEN
D(s+1)(i)=,Zs为使的规范化因子,下同。
ELSE
D(s+1)(i)=
ENDIF
ENDFOR
装袋和推进方法的时间复杂度为O(T*E*F),其中T为趟数,E为训练例个数,F为特征集中特征个数。
四、分类选举器设计
就装袋和推进方法而言,每一趟训练过程中,使用的训练例集不同。
装袋方法中,虽然得到多个分类器,但“袋”中的每一个分类器的分类模型相同;对于推进方法而言,最终只输出一个分类器,该分类器具有较高的分类精度,但该方法的训练时间太长。
我们在实现具体的分类系统的时候,利用装袋和推进方法的思想,设计了如下的分类选举器(以下简称为C_Voter),实验结果表明,这样的分类选举器具有较好的分类性能。
设有类别集合C={c1,c2,…,c|C|},Ci类别的训练例集为Ei,Ci类别的测试例集为Ti(i=1,2,…,|c|)。
C_Voter的设计思想如下:
(1)从训练例集中学习出K个不同模型的分类器Classifier1,Classifier2,…,ClassifierK;
(2)用测试例对各个分类器进行测试,可以得出Classifieri在Tj上的查全率、查准率和F1指标值(i=1,2,…,K;j=1,2,…,|c|);
(3)对于新文本,K个分类器分别可得出K个分类结果,设Classifieri对于新文本的输出结果为Classj(i=1,…,K;j=1,…,|c|),Classifierm对于新文本的输出结果为Classn(m=1,…,K;n=1,…,|c|),我们相信Classj还是Classn?
如果Classifieri在Classj对应的Tj测试例上的查全率(或查准率、或F1指标)高于Classifierm在Classn对应的测试例Tn上的查全率(或查准率、或F1指标),则我们相信Classj,否则相信Classn;为了下面的描述方便,我们称依据查全率来决定输出结果的选举器为“RC_Voter”,称依据查准率来决定输出结果的选举器为“PC_Voter”,称依据F1来决定输出结果的选举器为“F1C_Voter”。
对于从训练例集中学习出K个不同模型的分类器,我们还实验了下面两种选举器:
Voter_1:
判定新文本类类别采用投票法,其基本思想是:
如果多数分类器都认为新文本的类别为Cj,则输出Cj(j=1,…,|c|)。
Voter_2:
设Classifieri采用公式formula(i)(i=1,2,..,K)计算新文本属于各个类别的概率值(或相似性值),取C*=,利用C*去计算新文本属于各个类别的概率(或相似性值),并取最大值对应的那个类别为输出。
其中ai为分类器权重,即如果我们认为我们更应该相信分类器Classifieri,则可以将ai设置得相对大些,否则设小些,且=1。
五、实验结果
作者选取Rainbow数据集(http:
//www-2.cs.cmu.edu/afs/cs/project/theo-11/www/naive-bayes.html)对分类选举器做了相应实验。
Rainbow数据集是一个具有20个类别的新闻组数据,每个类别都有100个文档。
每个文档即是一封完整的邮件。
对于每一个类别,我们随机选取70个文本作为训练例,另30个作为测试例。
在实验中,作者选取了如下三个分类器:
基于Multi-variateBernoulliModel[3]的朴素贝叶斯分类器、基于MultinomialModel[3]的朴素贝叶斯分类器、简单向量距离分类器[6]。
为简单起见,我们分别称上述三个分类器为MVC、MMC和S_VSM,之所以选取这三个分类器进行实验,是因为:
(1)都是基于VSM的,因此可以共用相同的数据结构;
(2)实现起来都相对简单;(3)三个分类器分类速度及精度都较高,这种情况下与选举器的实验结果相比较,更能说明选举器的设计是否合理。
分类选举器的时间复杂度在O(E*F),E为训练例个数,F为特征数。
图1六种分类器在查准率上的比较
对分类器和选举器的测试采用的是开放测试方法,图1给出了MVC、MMC、S_VSM、PC_Voter、Voter1和Voter2的查准率比较结果。
图1表明,“PC_Voter”在大多数类别上的查准率都优于其它的分类器或Voter,说明PC_Voter的设计是比较合理的。
Voter1的效果比任何一个分类器的都要差,说明Voter1的设计是不合理的。
Voter2的表现总体上优于MMC和S_VSM,但与MVC相比,在各类别上的查准率都没有优于MVC的,至多是相等,说明Voter2的设计也不尽合理(实验中,MVC权重设置为0.5,MMC的为0.3,S_VSM的为0.2)。
图2四种分类器在查全率上的比较
图2是MMC、MVC、S_VSM、“RC_Voter”在查全率上和比较示意图。
从图中可以看出,“RC_Voter”的查全率总体上优于MMC、MVC及S_VSM。
值得一提的是,RC_Voter对大部分类别的查准率都在90%以上,总体查准率比三个分类器中最高的总体查准率提高了4个百分点。
图3显示的是MMC、MVC、S_VSM、“F1C_Voter”在F1指标上的实验结果。
从图中可以看出“F1C_Voter”在大多数类别上的F1指标值较三个分类器都有较大提高。
尤其值得一提的是:
三个分类器分类效果都较差的某些类别的测试例集上,“F1C_Voter”都有较好的表现,且总体查全率和查准率都有5%左右的提高。
图3四种分类器在F1指标上的比较
六、结束语
袋装和推进方法虽然可以从一定程度上提高分类器精度,但训练时间相对较长。
从实验情况来看,本文设计的三个C_Voter是比较合理的,它能从一定程度上提高参与选举的分类器的查全率、查准率、F1指标值。
而且由于可以选择基于相同数据结构的分类器算法,从而使实现起来相对简单。
参考文献:
[1]李文斌,刘椿年,钟宁.基于两阶段集成学习的分类器集成[J].北京工业大学学报,2010(03):
411-419.
[2]RobertSchapire,YoramSinger,AmitSinghal.ABoostingandRocchioAppliedtoTextFiltering[EB/OL].
[3]AndrewMccallum,KamalNigam.AComparisonofEventModelsforNaïveBayesTextClassification[EB/OL[.
[4]JiaweiHan,MichelineKamber.DataMiningConceptsandTechniques[M].北京:
高等教育出版社,2001.
[5]SureshK.Choubey,JitenderS.Deogun,VijayV.Raghavan,HayriSever.AComparisonofFeatureSelectionAlgorithmsintheContext[EB/OL].
[6]李文斌,陈嶷瑛,张娟.使用Fisher线性判别方法的提取分类器[J].计算机工程与应用,2010(14):
132-134.
[作者简介]申建国(1978.01-),河北邯郸人,学士学位,本科,工程师,职员,