论文部分内容阅读
高维数据的处理,一直都是数据挖掘领域中的难点。传统的数据挖掘方法在计算过程中往往需要用到数据中的所有的特征值,在处理特征维度较低的数据时是可行的,但是在处理维度过高的数据时则会遇到很多的问题,比如“维度灾难”(curse of dimensionality)问题。在大数据时代数据维度越来越高,如何高效处理这些高维数据,是很多学者的研究重点。高维数据处理最常用的方式是数据降维(dimensionality reduction),而对数据进行降维最常使用的是特征选择方法。关于特征选择算法的研究现在已经有很多的成果,如Relief算法等。但是大多对特征选择算法研究主要是考虑如何提高后续算法的分类性能,对算法稳定性方面的研究还比较少,而特征选择的稳定性是高维数据挖掘中一个重要问题。特征选择算法的稳定性是指,当数据集发生轻微的扰动时,所得到的特征子集会不会发生较大的改变。近些年关于如何提升特征选择算法的稳定性的研究已经有了一定的成果。本文分别对两种较新稳定的特征选择算法IW-Relief和FREL进行实现与研究,并验证其稳定效果。但是很多提高特征选择稳定性的方法在解决算法稳定性的过程中,往往并不能降低算法的时间复杂度,有些时候为了实现算法的稳定还会增加额外的时间开销,比如IW-Relief算法,而在很多应用场景中对算法的时间开销是有确切要求的或者希望能尽可能缩短算法的运行时间,因此需要设计新的解决方案来降低算法的时间开销。特征选择的另外一项重要研究课题是对流式数据的特征选择。互联网中产生的数据大多数都是流式的,比如金融信息、消息信息、访问日志等,这些流式数据大多需要实时处理。已有的流式的特征选择算法,大多数是以串行方式处理数据,因此对于如何实现流式特征选择算法的并行化研究也是一个非常有意义的课题。因此,本文对基于Apache Spark的稳定特征及流式特征选择进行了研究。Spark是一款开源的基于分布式的计算框架,因其优良的计算性能和完善的数据处理组件,近些年来被广泛的应用于数据挖掘、机器学习等领域。使用该框架和相应的算法结合,可以实现算法的并行化计算,从而可以有效的加快算法的运行速度。本文中结合Spark平台和IW-Relief、FREL这两种稳定的特征选择算法及流式特征选择算法SAOLA,设计基于Spark的并行稳定特征选择及流式特征选择算法,然后使用14个公开数据集,通过实验验证并行化后的算法在时间开销方面的性能。而在Spark平台中影响算法运行时间的因素较多,本文详细验证Spark平台中各项主要参数,如worker、partition、executors等对运行时间的影响。并根据实验结果进行分析和总结,说明各项参数对实验结果造成影响的原因,同时对并行化后的算法进行对比,分析每个算法的优劣。实验结果发现,基于Spark的稳定特征选择算法的时间加速比最大可以达到8,各项参数中对Spark运行时间影响最大的参数为分区数(partitions),而基于Spark的流式特征选择其加速比介于1.4~1.6。