论文部分内容阅读
互联网已经深深的融入了人们的生活之中,人们的日常行为时刻产生着有用的数据,对这些数据的快速处理并获得有用的知识变得越来越重要。现在数据挖掘已经走向了云计算时代,云计算已经逐渐取代了传统的单机计算。通过使用基于云计算平台的数据挖掘方法,系统可以准确和快速的从海量数据中挖掘出有用的信息。数据挖掘中的分类算法是进行趋势预测和个性化推荐的有效工具。本文基于时下最流行的开源云计算平台Spark,对数据挖掘中的分类算法进行研究,并选取了分类算法中经典的K近邻算法重点研究,对算法进行改进和并行化,并基于Spark进行实现,然后搭建了Spark集群,进行了相应的实验。改进的K近邻算法主要是针对传统K近邻算法在训练阶段不做任何处理工作的弱点进行改进,通过在训练阶段对训练数据集进行分析,找出一些特征值,对训练集进行预处理,从而减少在分类阶段需要比较的训练集样本,从而达到提高算法运行速度的目的。然后针对Spark云计算平台对数据进行分片时使用默认值与计算节点数目不匹配的缺点,对程序进行优化。在默认分片情况下,数据分片数量和计算节点数目不匹配会导致计算资源不能充分利用,引起运算性能下降,所以本文对程序进行优化,针对计算节点的个数对分区数进行相应优化,使分区数保持为节点数的整数倍,从而提高计算资源的利用率,加快算法的运行速度。本文选取了UCI的机器学习数据集,并对其进行扩展以满足数据量的大小要求。实验中对比了单机条件下普通K近邻和改进的K近邻的算法效率和准确率,然后测试了基于Spark的改进的K近邻算法的加速比。通过对实验结果的分析,改进的K近邻算法和普通K近邻算法有同等准确率,并且效率有了较大的提升。