计算机应用   2017, Vol. 37 Issue (4): 1100-1104  DOI: 10.11772/j.issn.1001-9081.2017.04.1100
0

引用本文 

许业旺, 王永利, 赵忠文. 基于实例的强分类器快速集成方法[J]. 计算机应用, 2017, 37(4): 1100-1104.DOI: 10.11772/j.issn.1001-9081.2017.04.1100.
XU Yewang, WANG Yongli, ZHAO Zhongwen. Fast ensemble method for strong classifiers based on instance[J]. Journal of Computer Applications, 2017, 37(4): 1100-1104. DOI: 10.11772/j.issn.1001-9081.2017.04.1100.

基金项目

国家自然科学基金资助项目(61170035,61272420,61502233);江苏省科技成果转化专项资金资助项目(BA2013047);江苏省六大人才高峰项目(WLW-004);国防科技重点实验室基础研究项目(DXZT-JC-ZZ-2013-019);兵科院预研项目(62201070151);中央高校基本科研业务费专项资金资助项目(30916011328)

通讯作者

许业旺 (1991-), 男, 江苏淮安人, 硕士研究生, 主要研究方向:数据挖掘、大数据信息安全, E-mail:381181495@qq.com

作者简介

王永利 (1974-), 男, 哈尔滨佳木斯人, 教授, 博士, 主要研究方向:数据库、数据挖掘、大数据处理、智能服务、云计算;
赵忠文 (1974-), 男, 北京人, 副教授, 硕士, 主要研究方向:信息系统、多维信息、态势综合

文章历史

收稿日期:2016-07-29
修回日期:2016-09-28
基于实例的强分类器快速集成方法
许业旺1, 王永利1, 赵忠文2    
1. 南京理工大学 计算机科学与工程学院, 南京 210094;
2. 装备学院 复杂电子系统仿真重点实验室, 北京 101416
摘要: 针对集成分类器由于基分类器过弱,需要牺牲大量训练时间才能取得高精度的问题,提出一种基于实例的强分类器快速集成方法——FSE。首先通过基分类器评价方法剔除不合格分类器,再对分类器进行精确度和差异性排序,从而得到一组精度最高、差异性最大的分类器;然后通过FSE集成算法打破已有的样本分布,重新采样使分类器更多地关注难学习的样本,并以此决定各分类器的权重并集成。实验通过与集成分类器Boosting在UCI数据库和真实数据集上进行比对,Boosting构造的集成分类器的识别精度最高分别能达到90.2%和90.4%,而使用FSE方法的集成分类器精度分别能达到95.6%和93.9%;而且两者在达到相同精度时,使用FSE方法的集成分类器分别缩短了75%和80%的训练时间。实验结果表明,FSE集成模型能有效提高识别精度、缩短训练时间。
关键词: 强分类器集成模型    基分类器评价方法    集成算法    样本分布    集成学习    
Fast ensemble method for strong classifiers based on instance
XU Yewang1, WANG Yongli1, ZHAO Zhongwen2     
1. Department of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing Jiangsu 210094, China;
2. National Key Laboratory of Complex Electronic System Simulation, Academy of Equipment, Beijing 101416, China
Abstract: Focusing on the issue that the ensemble classifier based on weak classifiers needs to sacrifice a lot of training time to obtain high precision, an ensemble method of strong classifiers based on instances named Fast Strong-classifiers Ensemble (FSE) was proposed. Firstly, the evaluation method was used to eliminate substandard classifier and order the restclassifiers by the accuracy and diversity to obtain a set of classifiers with highest precision and maximal difference. Secondly, the FSE algorithm was used to break the existing sample distribution, to re-sample and make the classifier pay more attention to learn the difficult samples. Finally, the ensemble classifier was completed by determining the weight of each classifier simultaneously. The experiments were conducted on UCI dataset and customized dataset. The accuracy of the Boosting reached 90.2% and 90.4% on both datasets respectively, and the accuracy of the FSE reached 95.6% and 93.9%. The training time of ensemble classifier with FSE was shortened by 75% and 80% compared to the ensemble classifier with Boosting when they reached the same accuracy. The theoretical analysis and simulation results show that FSE ensemble model can effectively improve the recognition accuracy and shorten training time.
Key words: strong classifiers ensemble model    base classifier evaluation method    ensemble algorithm    sample distribution    ensemble learning    
0 引言

集成学习 (Ensemble Learning) 是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。它可以有效地提高学习系统的泛化能力,因此集成学习作为机器学习界的研究热点,目前已经广泛应用于文本与语音识别[1]、协同过滤推荐[2]、辅助医疗诊断[3]、遥感信息处理[4]、系统故障诊断[5]等多个领域。

分类器集成是集成学习一个重要的研究方向,目前主要集成算法主要包括Boosting和Bagging,而不考虑数据集的影响,Boosting方法的集成分类器效果明显优于Bagging[6]。在大部分相关文献中,集成过程往往选择神经网络[7]、朴素贝叶斯[8-9]、决策树[10-11]等算法训练出成百上千个弱分类器 (识别率稍高于0.5) 再进行集成。这一做法存在以下不足:一方面,使用数量巨大的分类器将导致更大的计算和存储开销;另一方面,此类基分类器差异本身就很小,而当多次训练使得基分类器数目增加之后,分类器之间的差异会更小。周志华等已经验证,集成学习的效果取决于基分类器之间的差异性[12-15]。本文从参与集成的基分类器的分类准确性和差异性两方面考虑:准确性方面,本文选择识别率较高的强分类器作为基分类器,不仅能保障识别精度,还可以大幅提高集成效率;差异性方面,本文将差异性评价方法应用到分类器集成中,使集成系统的识别精度得到进一步提高。

在选定好基分类器之后,分类器之间的输出集成方法就成为实现集成学习系统的关键。目前常见的分类器集成方法有投票法[16]、线性组合法、证据理论法、模糊积分法等,它们在一定条件下均可以提高集成学习系统的性能。然而,这些方法都只是根据分类器的统计性能赋予分类器以相应的权值,而没有考虑各个样本的具体情况。比如投票法它的基本思想是:由基分类器对样本进行预测,每一个基分类器对自己所预测的类投一票,得到票数最多的类就是该样本的最终预测结果。这种集成方法往往会导致结果更倾向于那些易于识别的样本,而对于那些容易出错的样本,由于大部分分类器识别错误,导致最终结果也是错误的,无法发挥那些识别率较低,却具有很高差异性的分类器的作用。本文从基于实例的角度,采取多次改变样本权重以设定各分类器权重的思想,设计了一种基于集成学习的强分类器集成模型,并提出了一种FSE (Fast Strong-classifiers Ensemble) 集成算法来设定模型中基分类器的权重。最后通过算法分析和实验结果表明,本文模型的精度优于所有用于集成的基分类器以及常用集成方法,具有更优的精度以及更好的泛化能力, 同时由于使用的分类器属于强分类器,极大地缩短了训练模型的时间, 使其更具有实际应用价值。

1 定义与模型

差异性是高泛化能力集成的必要条件,为了使选择的基分类器具有很高的差异度,本文从识别率和差异性的角度设定了一种基分类器评价方法,从众多强分类器中选择最佳的基分类器集成组合。最后使用FSE算法集成所选的基分类器形成具有精度高、训练时间短的超强分类器。该模型包括训练模块和测试模块两部分,如图 1所示。

图 1 强分类器集成模型 Figure 1 Strong classifier ensemble model

训练模块主要分为五部分:1) 提取特征;2) 数据抽样;3) 训练基分类器;4) 挑选基分类器;5) 设置基分类器权重。

测试模块主要分为四部分:1) 提取特征;2) 数据抽样;3) 使用集成分类器;4) 输出结果。

下面对模块中出现的各步骤进行详细说明:

提取特征 训练模块和测试模块均使用人工神经网络 (Artificial Neural Network, ANN) 对数据集进行特征提取。由于本文主要采用基于实例思想,更关注当前样本权值分配,使用ANN可以在面对新样本时快速而有效地建立新的目标函数。

数据抽样 训练模块的数据抽样部分对经过ANN提取特征后的有标签数据集进行分层抽样,得到训练数据集1和训练数据集2。其中训练数据集1供训练分类器使用;而训练数据集2供训练FSE集成分类器使用。测试模块的数据抽样部分对经过ANN提取特征后的无标签数据集进行分层抽样得到测试数据集,供测试FSE集成分类器使用。

训练基分类器 该部分使用训练数据集1对多种机器学习算法进行训练,得到对应的分类器。

挑选基分类器 该部分使用本文所提的基分类器评价方法在训练好的分类器中挑选用于集成的基分类器。

设置基分类器权重 该部分使用FSE算法和训练数据集2为上一步骤中得到的基分类器设置各自权重,最终加权得到FSE集成分类器。

使用集成分类器 使用测试数据集对得到的集成分类器进行测试,并输出数据集的类别标签作为结果。

2 算法描述 2.1 基分类器评价方法

集成学习的效果取决于基分类器之间的差异性,因此在选择基分类器之前必须先设定选择分类器的度量标准。为此,本文采用识别率和差异度来度量。

定义1  识别率。

设存在分类器Ci,非空样本集S被分类器正确分类的样本集合为SiN(S) 为S中所含样本的个数,T为分类器的识别率,其定义如式 (1) 所示:

$ {T_i} = N({S_i})/N(S) $ (1)

定义2  差异度。

设存在两个分类器CiCj,非空样本集S被两个分类器正确分类的样本集合分别为SiSjF为两个分类器的差异度,N(S) 为S中所含样本的个数,则Cj对于Ci的差异度定义如式 (2) 所示:

$ {F_{j \to i}} = \frac{{N({S_j}) - N({S_i} \cap {S_j})}}{{N({S_i})}} $ (2)

由定义2可知,Fji越大,则CjCi间差异性越大;反之,差异性越小。

本模型中设定的分类器可能不止两种,这对于最终的集成分类器的泛化能力提高是有利的。不过也因此,需对式 (1) 的公式作进一步定义。假设在已有分类器CiCj集成的基础上加上Ck,则Ck对于CiCj集成分类器的差异度可定义为式 (3):

$ {F_{k \to ij}} = \frac{{N({S_k}) - N({S_k} \cap ({S_i} \cup {S_j}))}}{{N({S_i} \cup {S_j})}} $ (3)

其中:Fkij越大,则CkCiCj集成分类器差异性越大;反之,差异性越小。

根据上述的选择基分类器度量标准的定义,本文设计了一种基分类器评价算法 (如算法1所示)。它的主要思想是先按照识别率在强分类器集合Q中对分类器进行排序,剔除不合格分类器,并得到识别率最高的分类器C1;然后在剩余分类器集合中找出与分类器C1差异度最大的分类器C2,将C1C2进行集成。重复以上步骤,得到最终分类器组合。评价基分类器伪代码如下所示。

算法1  评价基分类器。

输入:Q{Qi|i=1, 2, …, n};

输出:C{Ci|i=1, 2, …, l+1}         //所有分类器集合

1)  For i=1 to n-1 do

2)    If TQiT′ Then

3)      删除TQi

4)    End if       //设置阈值T′剔除集合中不合格分类器

5)    If TQi+1TQi Then

6)      C1=Qi+1

7)    End if

8)  End for       //寻找识别率最高的分类器C1

9)  Q=1-C1

10)  C=C1

11)  While l≠0(1≤ln-1) do

12)    For j=1 to n-l do

13)      If FQj+1CFQjC Then

14)        C2=Qj+1

15)      End if

16)    End for

              //寻找与集成分类器C差异度最大的分类器C2

17)    C=CC2

18)    Q=Q-C2

19)    l--

20)  End while

21)  Return C{Ci|i=1, 2, …, l+1}

在基分类器有数量限制的情况下,按照该算法在强分类器集合Q中得到识别率最高、泛化能力最强的基分类器组合C。其中:语句1) 是分类器排序过程,执行了n-1次;语句11) 执行了l次;语句12) 作为11) 的内层循环执行了n-l次。所以算法1的时间复杂度是O(n+l(n-l)),其中n是供选择的强分类器个数,l是需要的基分类器个数。

2.2 FSE

通过算法1选定好基分类器之后,强分类器之间的集成方法就成为了实现集成学习系统的关键。本文提出了FSE算法——一种基于实例的强分类器快速集成算法。算法核心思想是:打破已有的样本分布, 重新采样使分类器更多地关注难学习的样本,并以此决定各分类器的权重。在描述算法之前,需要先作一些定义。

定义3  错分率。

$ ER = 1{\rm{ - }}T $ (4)

其中:ER表示分类器对样本错误分类的比例;T是分类器识别率。

定义4  权重。

$ W = I/N $ (5)

其中:W表示某样本d在总样本D中的重要程度;I表示单体样本训练最终分类器的能力; N表示所有样本训练最终分类器的能力。

FSE算法开始时,所有样本被赋予相同的权重1/N,训练算法1中得到的基分类器,并挑选出最佳分类器。每一轮结束后更新样本权重:增加被错误分类样本的权重,减少被正确分类样本的权重,这样迫使分类器在随后的迭代中更加关注那些难以分类的样本。重复以上步骤,直到算法满足结束条件为止。算法的输入为N对训练样本与标签的集合{(Xj, Yj)|j=1, 2, …, N},其中X为样本,Y为类标签;最终分类器C*作为算法的输出;分类器C{Ci|i=1, 2, …, l}为算法1中得到的基分类器集合。FSE伪代码如下所示。

算法2  FSE。

输入:{(Xj, Yj)|j=1, 2, …, N};

输出:C*         //最终集成分类器

1)  w={wj=1/N|j=1, 2, …, N}   //初始化各样本权重

2)  t=l   //根据算法1选择的基分类器数目确定循环次数

3)  While t≠0

4)    For i=1 to l-1 do

5)      If ERCi+1≤ERCi Then

6)        Ct=Ci+1

7)      End if

8)    End for       //寻找错分率最小的分类器Ct

9)     ${\varepsilon _{\rm{i}}} = \sum\limits_{n = 1}^N {w_j^{(t)}} I(C{'_i}({X_j}) \ne {Y_j})$

//计算在当前样本权重下错分率最小的分类器Ct的错误率

10)    If εi=0 Then

11)      Break

12)    End if

13)    ${{\alpha }_{C_{\text{t}}^{'}}}=\frac{1}{2}\ln \{\frac{1-{{\varepsilon }_{i}}}{{{\varepsilon }_{i}}}\}$

        //设定错分率最小的分类器Ct的权重

14)     $w_{j}^{\left( t-1 \right)}=\frac{w_{j}^{(t)}}{{{Z}_{j}}}*\left\{ \begin{matrix} {{e}^{-{{\alpha }_{C_{t}^{'}}},}},C_{t}^{'}({{X}_{j}})={{Y}_{j}} \\ {{e}^{{{\alpha }_{C_{t}^{'}}}}},C_{t}^{'}({{X}_{j}})\ne {{Y}_{j}} \\ \end{matrix} \right\}$

//在下一次循环中更改wj样本权重,其中Zj是规泛化因子,

            //使所有样本和为1

15)    t--

16)  End while

17)  Return C*=C1*αC1+C2*αC2+…+Ct*αCt

本文提出的FSE算法主要有如下优势:

1) 通过基分类器评价方法选取多个具有差异性的强分类器组合,并在FSE算法中将其作为基分类器,增加了分类器的多样性,在保证精度的情况下,提高了最终集成结果的泛化能力。

2) FSE算法使用算法1中得到的强分类器作为基分类器,让迭代次数等于选取的基分类器个数,使得训练时间大幅度缩减。

该算法中,语句1) 执行了N次,语句3) 执行了l次,语句4) 作为语句3) 的内层循环执行了l-1次。所以算法2的时间复杂度是O(N+l*(l-1))。其中:l是算法1中挑选出的基分类器个数,N为训练样本个数。

3 实验及结果分析 3.1 实验环境及数据集

本文的实验是用Matlab R2010b在CPU为2.53 GHz、内存容量为4 GB计算机上进行。实验中使用UCI数据库[17]中的chess数据集作为实验样本,基本情况见表 1。该数据分为获胜和非获胜两类。数据集已提取完特征,每组36维特征数组。数据抽样阶段,抽取2 000个样本作为分类器训练集;抽取400个样本作为集成训练集;抽取600个样本作为集成测试集。

表 1 数据集的基本情况 Table 1 Basic situation of data set

由于本文模型处理的是原始数据,实验数据集还使用了真实数据集chair,基本情况见表 1。数据分为椅子和非椅子两类,图片分辨率为800×800。提取特征阶段,使用ANN自主进行特征提取,每个样本形成一组64维特征数组。数据抽样阶段,抽取600个样本作为分类器训练集;抽取300个样本作为集成训练集;抽取100个样本作为集成测试集。

3.2 挑选基分类器与未挑选集成分类器精确度对比

由于机器学习算法有很多,对应的推广更是不计其数,所以穷举所有强分类器并挑选最佳分类器显然是不现实的,因此,仅针对常用机器学习分类器以及chess数据集,使用本文所提的基分类器评价方法得到分类器组合方案,部分结果见表 2

表 2 分类器集成方案 Table 2 Classifier ensemble scheme

由于Boosting方法的集成分类器效果明显优于Bagging,对比实验中,采用Boosting算法来训练并产生新基分类器,即重复地随机选择样本子集作为训练集;采用的基分类器是CART树。利用Boosting算法从训练样本中随机选取一些样本组成10、15、20、25个样本子集,并用它们生成的10、15、20、25个基分类器组合,分别计算它们识别率并用其对集成训练样本进行识别,根据识别率进行排序,挑选识别率最高的一组。利用基分类器评价算法在常用分类器中选出对应数量的差异性最大的基分类器组合,最后分别计算各自识别率。两者均用投票法和线性组合法完成分类器集成,表 3给出了使用Boosting方法和使用基分类器评价方法构造的不同分类器组合的识别率。

表 3 使用不同方法构造的不同集成分类器识别率       % Table 3 Recognition rates of different ensemble classifiers constructed by different methods       %

表 3可以看出,在chess数据集下,未利用基分类器评价方法的集成分类器精度在分类器数量为20和25时最高达到90.2%;相同数量的基分类器组合情况下,利用本文的基分类器评价方法的集成分类器识别率最高达到93.9%和92.2%。在chair数据集下,集成方法为投票法情况下,利用基分类器评价方法的集成分类器分类精度比未用的集成分类器在分类器数量为10时最高提高了5.4%;集成方法为线性组合情况下,识别率在分类器数量为15时最高提高了4.5%。由此可见,利用基分类器评价方法可以有效提高集成分类器的识别率, 而且构造多分类器集成系统时,分类器数量并非越多越好。

3.3 FSE集成方法与常用集成方法识别率对比

为了对比使用FSE集成方法与常用集成方法的区别,在3.2节使用基分类器评价方法构造的分类器实验基础上增加本文所提的FSE集成方法,具体结果见表 4

表 4 FSE集成方法与常用集成方法识别率       % Table 4 Recognition rate of FSE ensemble method and common ensemble methods       %
3.4 FSE集成模型与Boosting分类器+常用集成方法实验时间对比

为了检验FSE集成模型的性能,本实验以FSE模型和Boosting算法训练时间为标准,比较两者达到相对稳定识别率时的时间消耗, 具体结果见图 23

图 2 chess数据集下时间消耗对比 Figure 2 Comparison of time consumption under chess data set
图 3 chair数据集下时间消耗对比 Figure 3 Comparison of time consumption under chair data set

图 2可以看出,由于Boosting使用的是识别率略高于50%的弱分类器,所以在实验1开始集成分类器的识别率仅略高于50%,但随着时间增加,其识别率有显著提高。chess数据集下,Boosting+常用集成方法训练到4 min时识别率达到90%左右,不过识别率变化大幅减小,但仍然保有上升趋势;而FSE集成模型在1 min左右即达到90%的高识别率,后续部分仅为了对比让其继续执行相应时间,虽然偶尔出现轻微的过学习状态 (识别率下降),但实际应用过程中,当达到稳定识别率且不需要继续提高识别率情况下,后续的过程是没有必要的。图 3也保有此类规律。

本实验中chess数据集下FSE集成模型的比Boosting+常用集成模型缩短了75%训练时间,chair数据集下缩短了80%训练时间。由此可得,FSE集成模型有效地加快了训练速度。

4 结语

针对集成分类器牺牲存储和计算来提高精度的问题,本文提出一种基于实例的强分类器快速集成方法。该方法通过基分类器评价方法挑选差异性最大的分类器组合,然后利用FSE算法对分类器进行集成。本文采用了2个真实数据集进行验证,结果表明FSE不仅提高了识别精度,还大幅度缩短了训练时间。今后的研究工作中,将着重考虑利用深度学习知识改进分类器评价方法和集成算法。

参考文献
[1] SILVA C, LOTRIC U, RIBEIRO B, et al. Distributed text classification with an ensemble kernel-based learning approach[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 2010, 40 (3) : 287-297. doi: 10.1109/TSMCC.2009.2038280
[2] BAR A, ROKACH L, SHANI G, et al. Improving simple collaborative filtering models using ensemble methods[C]//Proceedings of the 11th International Workshop on Multiple Classifier Systems, LNCS 7872. Berlin: Springer, 2013: 1-12.
[3] ZHOU Z H, JIANG Y, YANG Y B, et al. Lung cancer cell identification based on artificial neural network ensembles[J]. Artificial Intelligence in Medicine, 2002, 24 (1) : 25-36. doi: 10.1016/S0933-3657(01)00094-X
[4] BORGHYS D, YVINEC Y, PERNEEL C, et al. Supervised feature-based classification of multi-channel SAR images[J]. Pattern Recognition Letters, 2006, 27 (4) : 252-258. doi: 10.1016/j.patrec.2005.08.006
[5] ZUO L, HOU L, WU W, et al. Fault diagnosis of analog IC based on wavelet neural network ensemble[C]//ISNN 2009: Proceedings of the 6th International Symposium on Neural Networks, LNCS 5553. Berlin: Springer, 2009: 772-779.
[6] POLIKAR R. Ensemble learning[M]//ZHANG C, MA Y. Ensemble Machine Learning. Berlin: Springer, 2012: 1-34.
[7] LIU C L. Classifier combination based on confidence transformation[J]. Pattern Recognition, 2005, 38 (1) : 11-28. doi: 10.1016/j.patcog.2004.05.013
[8] SHIPP C A, KUNCHEVA L I. Relationships between combination methods and measures of diversity in combining classifiers[J]. Information Fusion, 2002, 3 (2) : 135-148. doi: 10.1016/S1566-2535(02)00051-9
[9] JIANG L, CAI Z, ZHANG H, et al. Naive Bayes text classifiers: a locally weighted learning approach[J]. Journal of Experimental and Theoretical Artificial Intelligence, 2013, 25 (2) : 273-286. doi: 10.1080/0952813X.2012.721010
[10] YUKSEL S E, WILSON J N, GADER P D. Twenty years of mixture of experts[J]. IEEE Transactions on Neural Networks and Learning Systems, 2012, 23 (8) : 1177-1193. doi: 10.1109/TNNLS.2012.2200299
[11] SHI L, WANG Q, MA X, et al. Spam email classification using decision tree ensemble[J]. Journal of Computational Information Systems, 2012, 8 (3) : 949-956.
[12] SCHAPIRE R E, FREUND Y, BARTLETT P L, et al. Boosting the margin: a new explanation for the effectiveness of voting methods[J]. Annals of Statistics, 1998, 26 (5) : 1651-1686. doi: 10.1214/aos/1024691352
[13] LIU Y, YAO X. Ensemble learning via negative correlation[J]. Neural Networks, 1999, 12 (10) : 1399-1404. doi: 10.1016/S0893-6080(99)00073-8
[14] ZHANG Y, BURER S, STREET W N. Ensemble pruning via semi-definite programming[J]. Journal of Machine Learning Research, 2006, 7 (3) : 1315-1338.
[15] LI N, ZHOU Z H. Selective ensemble under regularization framework[C]//Proceedings of the 8th International Workshop on Multiple Classifier Systems. Berlin: Springer, 2009: 293-303.
[16] JIANG M, YI X, LING N. Frame layer bit allocation scheme for constant quality video[C]//Proceedings of the 2004 IEEE International Conference on Multimedia and Expo. Piscataway, NJ: IEEE, 2004, 2: 1055-1058.
[17] FRANK A, ASUNCION A. UCI Machine Learning Repository[DB/OL].[2016-03-15]. http://www.ics.uci.edu/?mlearn/.