APP下载

基于MOABC算法的分类器研究和设计

2020-04-17张谦孟月霞刘聪

河南科技 2020年1期

张谦 孟月霞 刘聪

摘 要:在智能算法优化分类器参数时,经常采用加权方式将分类率和特征数目作为单目标优化。为提高分类性能和解决权值设定问题,本文提出一种基于MOABC算法的分类器设计,将分类率和特征数目作为两个优化目标,并通过相关数据进行验证。结果表明,通过多目标优化可以得出多组最优解,供决策者选择,并且分类效果明显优于作为单目标处理时所得的结果。

关键词:MOABC算法;分类率;特征数目

中图分类号:TP18;TP311.13文献标识码:A 文章编号:1003-5168(2020)01-0020-03

Abstract: When the intelligent algorithm optimizes the classifier parameters, the classification rate and the number of features are often used as single target optimization. To improve the classification performance and solve the weight setting problem, this paper proposed a MOABC algorithm. The classifier design took the classification rate and the number of features as two optimization targets, and verified by relevant data. The results show that multiple optimal solutions can be obtained by multi-objective optimization, which can be selected by decision makers, and the classification effect is obviously better than that obtained by single objective processing.

Keywords: MOABC algorithm;classification rate;characteristic number

1 研究背景

随着社会的不断发展,通信技术、信息技术和计算机技术不断強大,出现了大量数据。那么,如何从这些众多的数据中提取出有价值的数据成为研究者的研究内容,数据挖掘[1]由此产生。数据挖掘的基本理念是:决策者通过从大量数据中提取出的有用信息作为处理问题的判断依据。

数据分类是数据挖掘中的一个重要分支,分类算法直接影响分类结果。要想得到较好的分类结果,需要构建良好的分类模型。随着智能算法的不断发展,基于智能算法的分类器研究越来越多。在数据分类中,为了提高分类效果,主要对分类器参数进行优化;而对于高维数据,为了降低分类难度,通常需要数据中主要特征数。

在以往的研究中,研究者经常会将优化特征子集和分类器参数分开进行,也有少量研究是同步优化特征子集和分类器参数的,并取得了一定的效果[2]。在同步优化参数和特征子集时,智能算法适应度函数选用分类率和特征个数作为最优解的选择依据,那么要如何确定两个参数的权重呢?大部分学者是通过实验法主观设定,但这种方式会影响结果。为解决参数权重的设定问题并提高分类精度,本文将采用多目标人工蜂群算法对分类器进行设计,将分类率和选择的特征数目作为两个目标进行处理。

2 多目标优化问题

在实际应用中,要想得到一个优化问题的最终解,其实包含多个目标,而这些目标函数需要同时进行优化处理,并且选取的目标之间通常是相互矛盾的,这就是多目标优化问题[3]。

当这两个条件满足时,对应的[x]是可行解,全部可行解的集合称为可行解集(可行域)。

多目标问题的解决方式[3]有两种:一种是通过设定权值将多目标问题转换成单目标问题,在分类算法中,通常将智能算法优化后参数的分类率和特征个数用加权方式合为单目标问题,但是,当权值发生变化时,就需要重新运算,并且权值大多是无法预判的;另一种方法是采用一组互不支配的解集,然后根据实际情况最终做出决策。本文主要采用多目标人工蜂群算法(Multi-objective Artificial Bee Colony,MOABC)将分类率和特征个数作为两个目标处理,最终应用到具体数据分类中得到一组最优解。

3 MOABC算法

在MOABC算法中,主要明确以下两点。①对解的评价:由于多目标优化得到的是一组解集,因此根据Pareto支配关系[4]保留最优解;②最优解的保存和更新方式:将求得的最优解保存起来,每次循环都对已存在的解进行更新,从而去除不好的解,保留优解。同时,保存解集的内存要限制大小,从而减少计算量,并通过拥挤距离控制解的数量。

MOABC算法的步骤如下。

第一步,初始化。明确待优化的参数,并设置参数的上下限,根据公式(2)完成种群初始化,并依据Pareto支配原则,找到初始优解保存到解集空间中。

第四步,寻找新解。当搜寻次数达到[Limit]次并且结果无变化时,就选择抛弃,并根据公式(2)生成新的蜜源。

第五步,外部解集更新。当新解被旧解支配时,则不会加入外部解集;当新解支配旧解时,新解则会替换掉旧解;新解与旧解互不支配时,新解直接归入解集。外部档案的大小有限制,因此,需要通过拥挤距离对外部档案中的解进行排序,进而保存最优解,并确保外部档案的大小。

在求第[i]个个体的拥挤距离时,应将每个目标函数值从小到大排列,并将两端设为无穷大,而中间个体的距离按照公式(5)计算,最后,各个目标函数的拥挤距离之和即为总体拥挤距离。

4 MOABC分类算法的实现

本文采用SVM(支持向量机)分类算法。为了提高分类性能,优化的参数主要是惩罚因子[C]、核函数参数[γ]和特征数目。其中,特征数目按照实际操作时数据库的数目来定。由于本文是将特征选择和分类率作为两个目标来处理,因此,适应度函数包含两个,分别是[fitness1=svm_accuracy]和[fitness2=feature number]。具体运用MOABC算法优化分类率和特征数目的流程如图1所示。首先将输入的数据进行[0,1]归一化处理,方便之后的数据分类操作;然后将数据分为测试集和训练集,为了保证分类模型的准确性,通常测试集的数目居多,并且要包含每一类数据,接着运用训练集通过MOABC算法对模型进行寻优,通过迭代找到较优的参数和特征数的集合,然后用于测试集进行测试。MOABC算法具体寻优操作如图2所示。

5 仿真结果与结论

在MATLAB界面下编写M文件,并结合LIBSVM工具箱将UCI数据库的数据进行分类测试。在测试时,将数据分为训練集和测试集,训练集用于优化特征子集和参数,而测试集用于验证。本文选用两组数据进行验证。图3是多目标优化算法得出的一组解集,表1是两组数据对应的分类结果集,表2是将分类率和特征数目作为单目标处理时所得到的结果。

由分类结果可以看出,由多目标人工蜂群算法构成的分类器,不仅可以避免在单目标处理时设置权值的问题,同时能得到较优的分类效果,并且从表1可以看出,多目标分类器设计可得到多组最优解,决策者可根据实际需要选择相应的结果。通过与表2对比可以看出,使用多目标优化算法使训练集和测试集的结果相差不大,特征数目也比单目标处理时得到的少。

参考文献:

[1]Jiawei Han,Micheline Kamber,JianPei,et al.数据挖掘:概念与技术[M].北京:机械工业出版社,2012.

[2]Zhang Y,Gong D,Hu Y,et al. Feature selection algorithm based on bare bones particle swarm optimization[J]. Neurocomputing,2015(148):150-157.

[3]张长胜.多目标人工蜂群算法及遗传算法的研究与应用[M].沈阳:东北大学出版社,2013.

[4]胡恒,高鹰.多目标人工蜂群算法研究[J].福建电脑,2013(10):66-69.