文摘
作为最有效的函数挖掘算法之一,基因表达式编程(GEP)算法已广泛应用于分类、模式识别、预测等研究领域。基于自我进化,创业计划是我能够最优函数来处理更加复杂的任务。然而,在大数据研究,实施遇到低效率问题由于其长时间开采过程。提高实施效率的大数据研究尤其是对处理大规模分类任务,本文提出了一种并行GEP算法使用MapReduce计算模型。给出的实验结果表明,该算法具有可扩展性和高效的处理大规模分类任务。
1。介绍
近年来,基因表达式编程(GEP) (1)算法被广泛研究由于其重要的函数挖掘能力。比较其他机器学习算法支持向量机和神经网络等,实施的最显著的特点是,它可以明确我的数学方程的因变量和独立变量从数据集。因此,方程可以很容易地存储和使用在未来的研究数据。也类似于遗传算法,GEP算法模拟生物进化的过程我最好的健身代表函数的数据关系。在进化过程中,算法采用选择、交叉和变异操作产生的后代。每个人的后代是一个适应度函数进行评估。个人有更好的健身有更高的机会被选中来产生下一代。进化不断演变,直到满意可以描述数据的函数关系。
是一种有效的数据分析方法、分类研究很多,分类算法,特别是监督分类算法,例如,人工神经网络(ann),显示卓越的分类能力。然而,人工神经网络也函数拟合的算法从根本上说,虽然和GEP算法不能输出功能明确。这一点激励我们,创业计划也可以用来处理监督分类任务使用以下想法:(1)让训练数据和编码的类。(2)火车GEP算法使用和我的一个函数。(3)输入被分类的数据来;观察输出,它可以代表的类应该属于。因此,是机密。它也激励我们,基于工作(2,3),GEP-based分类有很大潜力进一步应用到大规模的分类任务。
不幸的是几位工作4- - - - - -6]指出,处理大规模任务使用实施可能遇到的低效率问题。原因在于,作为一个启发式算法,GEP我需要极长时间的最佳函数大量的数据。因此,提高大规模分类效率使用《也是本文关注的全球经济展望》。因此,本文提出了一种并行GEP算法使大规模的分类。MapReduce的算法设计和实现分布式计算环境。后的测试基于标准的基准数据集进行了。实验结果表明,该并行GEP算法显示了优势在处理大规模分类任务。
剩下的纸是组织如下:部分2回顾了相关工作;部分3介绍了并行化的实施;部分4讨论了实验结果;和部分5总结了纸。
2。相关工作
作为一个有效的函数挖掘算法,GEP研究已广泛应用于数字。任等。7就业创业计划设计一个hyperheuristic框架为了解决组合优化问题。他们的实验结果表明,该框架具有巨大的潜力来解决这个问题。黄等。8)采用《预测全球经济展望》的Qos(服务质量)交通以太网无源光网络。作者结合GEP算法处理队列的变化在等待时间以及减少高优先级分组延迟。邓et al。9)也采用GEP和粗糙集评估电力系统网络的物理安全风险。根据他们的研究,安全风险水平的网络物理电力系统可以准确地预测。
然而,一些工作(4- - - - - -6)指出,GEP低效率问题进行处理复杂的任务。为了解决这个问题,一些研究人员专注于改进的GEP算法参数。雪和吴10)提出了共生基因表达式编程(SGEP)基于共生算法,分布估计算法,进化过程改进的实施。实验结果表明,SGEP优于实施的效率。陈等人。11)指出,创业计划的计算昂贵的计算表达式的进化树。因此他们提出Reduced-GEP算法是基于减少染色体。实验结果表明,该算法是有效和高效的计算健康和减少染色体的大小。在研究[12),受染色体的多样性安排在生物学上,提出了一个无约束编码基因表达式编程。这种方法可以扩大搜索空间的功能,提高了标准的GEP算法并行性和适应性。
解决效率问题,创业计划的另一个有效的方法是使用并行计算和分布式计算。杜et al。13)提出了异步分布式并行GEP算法。他们旨在加快寻找最优解的收敛性使用MPI(消息传递接口)14]。在每一个处理器,一个独立的GEP算法运行。然后是处理器交换他们最好的个人和继续发展。直到终止消息发送到处理器,该算法停止。根据实验结果,作者声称,该算法可以大大加快算法收敛。不过,他们尚未评估算法使用大量的数据。MPI是高度根据齐次硬件环境,这限制了该算法适应。杜等人还提出了一个MapReduce (15)基于分布式GEP算法处理大数量和数据集。类似于(13),每个地图计算健康和减少选择、变异和交叉操作执行。输出是输出到分布式文件系统交流最好的个体发生的地方。尽管作者声称他们加速实现算法,两个问题应该讨论。首先该算法需要大量的减少,生成系统的开销,因为IO操作(2在还原剂)。其次他们的算法需要大量的迭代。然而,MapReduce不支持迭代。相反,该算法必须提交一些MapReduce作业到集群中,产生非常大的开销(3]。布朗和多斯桑托斯16还讨论了并行化的实施使用岛模型。然而,他们的算法并不关注并行化。和处理大量的数据集的算法性能没有被评估。
本文提出的改进的GEP主要集中在并行GEP算法执行大规模的分类。我们的算法首先使用Hadoop框架(17)作为底层基础设施。其次结合整体技术,该算法能够供应效率、可伸缩性和准确性。
3所示。算法设计
3.1。使用分类实施
根据选择,交叉,变异,和健身,我创业计划能够从给定的数据集的函数。因此,让表示的训练数据集;表示在一个实例;表示的长度;表示th类;表示测试数据集;表示在一个实例;表示类的编码标识符;表示一个阈值;表示正确分类实例的数量;和代表训练实例的数量。分类使用GEP算法所示1。
|
||||||||||||||||||||||||||||||||||||||||||
3.2。Hadoop MapReduce和
MapReduce计算模型两个主要的Map和Reduce函数有助于促进发展的分布式计算应用程序。Map函数执行主要计算和Reduce函数收集地图的中间输出,生成最终的输出。每个地图计算数据实例一个接一个键-值对的形式。然后计算结果输出作为中间输出。减少了中间输出收集的地图。后来每个减少合并的输入都有相同的密钥并生成最终的输出。
Hadoop框架(17,18MapReduce的)是一个基于Java的实现。两种类型的节点包括一个NameNode和几个datanode由一个典型的Hadoop集群。NameNode管理元数据,而DataNode执行大量的地图(地图)和减少并行(还原剂)操作。NameNode和datanode贡献他们的资源包括处理器、内存、硬盘和网络适配器形成了Hadoop分布式文件系统(HDFS) [17]。HDFS不仅负责高性能数据存储也管理数据处理映射器和还原剂,提供容错、负载平衡、可伸缩性和异构硬件支持。图1显示了Hadoop框架结构。
3.3。并行化的实施使大规模的分类
在训练阶段,让表示映射器的数量。因此,训练数据集可分为很多吗数据块,每个块都是由。满足 首先映射器输入并行数据块。然后每个映射器启动一个sub-GEP开始挖掘根据输入训练数据的函数。只要一个函数(分类)一直在挖掘每个映射器,完全的生成分类器。
在分类阶段,测试数据集也分为块。以前每个训练分类器输入并执行一个测试数据块分类。因此,使用实施分类可以并行。然而,应该提到一个问题,由于训练数据集的数据分离,每个sub-GEP每个映射器只训练有素的原始数据集的一个子集。培训不足可能导致分类精度的损失。为了避免并行化实施分类精度损失,整体技术包括引导和多数表决。
引导的想法是基于控制的次数的训练实例出现在引导样本,这样的数量引导样品,每个实例出现了相同数量的次(19]。创造平衡引导样本,可以跟着下面的步骤:(1)构造一个字符串的实例重复次,这样一个序列是实现。(2)一个随机排列1的整数。因此第一个引导样本可以从创建,而且第二引导样本,等等。(3)重复步骤直到,这是B引导样本。基于引导,实例分布的原始数据集可以模拟样品的原始数据可以保存更多的信息。绝大多数投票是一种常用的技术组合。测试的系综分类器预测类实例被大部分的基分类器预测(20.]。
采用自举和多数投票,并行实施分类算法如下。
在培训阶段:(1)该算法首先生成一个数量引导使用训练数据集样本集T。每组保存在一个数据块存储在HDFS中。(2)每个映射器启动HDFS sub-GEP和输入一个数据块。(3)每个映射器列车其sub-GEP根据步骤来在算法1。只要训练终止,开采出来的函数由减速机收集,保存到HDFS值对吗。(4)在每个映射器其sub-GEP矿山单独的函数,因此,最后一批不同的功能可以保存,这意味着很多弱分类器。图2显示了算法的训练阶段。
在分类阶段:(1)每个映射器检索一个函数从HDFS这映射器变成一个弱分类器。(2)然后所有映射器输入相同的一个实例从测试数据集。(3)在每个映射器,当是输入,值吗可以根据计算。比较的值,,根据步骤在算法1,可以分类。(4)的映射器输出它的中间输出。(5)一个减速机收集所有的中间输出映射器。然后,它都拥有相同的输出键合并到一个组。执行组中,多数投票投票最终的分类结果。图3显示了分类阶段。
4所示。算法评估
4.1。实验环境
为了评估算法的性能,物理Hadoop集群由一个NameNode和四个datanode成立。集群表中列出的细节1。
实验中使用的数据集的虹膜数据集(21和葡萄酒的数据集22]。表列出了数据集的详细信息2。
创业计划的参数表中列出的实验中使用3。
4.2。分类的准确性
让rightNum代表的数量正确实例和分类wrongNum代表错误分类实例的数量。因此,分类精度被定义为
在接下来的测试中,越来越多的实例被选中的两个数据集作为训练实例,而其余的实例测试实例。引导的数字是4和执行并行的算法开始十一映射器实施分类。实验结果如图4- - - - - -14和函数在每个Sub-GEP虹膜分类数据集和函数在每个Sub-GEP葡萄酒分类数据集在附录中。
图4显示了虹膜的分类精度和越来越多的数据集训练实例从12到105。它可以观察到平行GEP算法执行高度稳定,优于独立GEP算法。分类结果的可视化显示的数字11,12,函数在每个Sub-GEP虹膜分类数据集在附录中。
葡萄酒数据集也被用来评估分类精度。数据集比较虹膜数据集,每个实例的葡萄酒有13个属性,这可能影响分类精度。实验结果显示在图5。
图5显示了葡萄酒的分类精度和越来越多的数据集训练实例从12到118年。结果表明,由于归因的情况下,并行实施的准确性开始波动。然而,在大多数测试的并行实施仍然优于独立实施的准确性。它进一步表明整体技术有助于提高分类精度。分类结果的可视化显示的数字13,14,函数在每个Sub-GEP葡萄酒分类数据集在附录中。
为进一步评估算法的有效性,我们还实现反向传播神经网络(摘要)。分类精度的比较如图所示6。
图6表明,虹膜数据集分类精度、平行GEP算法优于摘要。尽管神经网络在分类上的表现也不错,当训练实例的数量很小,它使分类精度较低。
图7表明,葡萄酒数据分类的准确性,平行GEP算法大大优于摘要。由于数据集更多的归因,摘要很难正确分类的测试实例。相反,并行实施仍能保持较高的精度。
应该注意到,引导代表数量的次数训练实例出现在引导样品也影响了算法的准确性。因此图8生成的分类结果与增加引导数字。葡萄酒选择数据集的实验数据集,在其中的118个实例的训练实例和剩下的60实例测试实例。
在图8,它可以观察到,当引导数小于6,分类精度不断增加。然后,精度略有不同。图8明显告诉最初扩大引导数量提高了分类。然而,引导数达到一定值时,性能方面无法进一步提高分类精度。
4.3。运行时间的分类
在这一节中,选择葡萄酒数据集的实验数据集。增加训练数据大小的算法处理时间评估。在接下来的测试中,首先引导数量是4,这意味着每个训练实例出现4次。训练实例的数量是118个同时测试实例保持60。然后训练数据规模复制从大约0.5 MB到1024 MB。应当指出,由于重复,引导数量将从4,在那里代表了复制。然而,本节只侧重于算法的效率。因此尽管不同引导数字可能影响分类精度根据图略8算法处理时间,增加训练数据大小突出显示在图9。
图9显示,当训练数据规模小,独立实施和并行实施的表演几乎是相同的。然而,当数据规模变大,并行GEP优于独立实施。当数据大小超过256 MB增加,独立创业计划不能完成分类由于内存限制。相反,并行实施仍然工作正常,即使数据大小增加到1024 MB。
进一步比较其他分类算法的分类效率,基于MapReduce的平行bac传播神经网络算法(MRBPNN 1、2和3)2)也执行。在图所示的比较10。
图10表明,算法的运行时间而言,并行摘要算法MRBPNN 1和2比并行实施。主要原因是实施需要时间来发展。相反,MRBPNN 1和2需要短时间培养神经元。虽然并行实施执行低于MRBPNN 1和2,它可以提供更高的分类精度的数据显示6和7。
5。结论
本文提出一个基于MapReduce和整体技术并行基因表达式编程算法使大规模的分类。实施的并行化主要集中在并联训练阶段(功能挖掘阶段),是最耗费时间和计算密集型的过程。给出的实验结果表明,该算法优于独立GEP和摘要的分类精度。在算法执行时间的评估,提出了并行实施独立创业计划也显示了非凡的性能比较。虽然并行实施工作低于MRBPNN 1和2,它可以提供更高的分类精度,使提出的并行实施的有效工具处理大规模的分类。
附录
在附录中,虹膜和葡萄酒分类数据集的细节已经上市。图11可视化的分类结果为虹膜分类数据集独立创业计划。
图11我表明,实施有能力一个函数f分类成三个类实例。在这种情况下,开采的功能f是由:
Iris数据集分类的结果11 sub-GEPs受雇于并行实施如图12。
图12表明,十一sub-GEPs由于不同开采功能有不同的分类结果。然而,由于多数表决的减速器,并行实施能输出正确的分类结果。十一个开采函数列出如下。
函数在每个Sub-GEP虹膜分类数据集 ; ; ; ; ; ; ; ; ; ; ;图13可视化的分类结果独立实施葡萄酒分类数据集。
在这种情况下,开采的功能是由:
葡萄酒数据分类的结果11 sub-GEPs受雇于并行实施如图14。
十一个开采函数列出如下。
函数在每个Sub-GEP葡萄酒分类数据集 + + + + + + + +
相互竞争的利益
作者宣称没有利益冲突有关的出版这篇文章。
确认
作者想感谢中国国家自然科学基金的支持。51437003)。