论文部分内容阅读
在大数据时代,数据挖掘技术得到进一步研究与发展,尤其是分布式算法和在线学习算法运用而生。分布式存储和计算技术使海量数据得到快速存储,且计算速度得到大幅度提升。因此,将数据挖掘算法扩展到分布式得到快速发展,如Hadoop的Mahout组件,Spark的MLlib组件等。在线学习算法实时接收单条数据或小批次数据进行模型训练,其优点是节省内存、计算速度快,无缝适用于海量数据下的数据挖掘。在数据挖掘的分类任务中,基于Boosting的分类算法层出不穷。1995年Freund提出的BBM(Boosting By Majority)算法具有较好的分类性能,但该算法适用于单机小数据集,在数据量爆炸的今天,传统的BBM算法已经无法满足需求。本文主要贡献在两个方面:第一,基于BBM算法,使用Spark大数据处理技术,提出了BBM的分布式批数据处理算法BBM.Spark;第二,基于Online BBM算法,使用Spark Streaming分布式数据流处理技术,提出了Online BBM的分布式流数据处理算法BBM.Streaming。本文通过10个数据集,对BBM.Spark和BBM.Streaming进行了实验。在BBM.Spark实验中,研究了三方面因素对算法性能的影响:一、弱分类器个数,二、num-executors、executor-cores和partitions等参数,三、数据混洗占用的网络通信开销。实验结果显示,随着弱分类器个数的增加,分类正确率逐渐增加并趋于稳定。num-executors、executor-cores和partitions参数在不超过资源上限时,随着参数值不断变大,运行效率逐渐提高。在BBM.Streaming实验中,研究了两方面因素对于算法性能的影响并与Online BBM和VFDT进行对比:一、弱分类器个数,二、num-executors、executor-cores和partitions等参数。实验结果显示在分类正确率上Online BBM与BBM.Streaming、VFDT相差无几,在运行效率上,在小数据集上BBM.Streaming<online BBM<VFDT,在大数据集上BBM.Streaming>online BBM>VFDT。以大数据和数据流为基础,对Boosting进行研究具有积极意义。以分布式批处理大数据,可以充分利用计算机资源,发挥Boosting算法在大数据下更强大的分类性能。以单机或者分布式处理数据流,可以节约计算机内存,加快Boosting算法的运行。