论文部分内容阅读
随着现代信息社会的蓬勃发展,互联网数据呈指数级增长,数据规模的爆炸式激增促进了“大数据”这一名词的火热,我们逐渐步入了大数据时代。各科研单位、团体、公司越来越专注于如何从大规模数据中寻找相应的规律,提炼出有用的价值,各类机器学习算法为解决此类需求提供了思想指导与解决方案,聚类算法作为其中的重要分支得到了长足的发展,并被广泛应用了到各个领域。然而,传统的聚类算法一般为单机运行,在面对大规模数据时往往表现不佳,效率低下难以满足性能要求。为提升传统聚类算法的大数据处理能力,目前常用的手段是将算法基于分布式计算平台并行化,借助分布式集群的优势提升算法的性能。目前主流的分布式计算平台有Apache Hadoop和Apache Spark,然而相比于Hadoop将计算结果存储在磁盘中,将运算中间结果保存在内存中的Spark拥有更高的迭代运算速度,因此能够更好的适应基于迭代运算的机器学习算法。本文针对聚类算法存在的一些问题进行了改进与优化,并将优化后的算法结合Spark大数据分布式框架进行了并行化实现,最后通过实验探讨算法的改进效果,主要工作有以下几点:(1)研究各类聚类算法,主要研究了基于划分的聚类算法,并选取其中几种具有代表性的算法(Kmeans算法、FCM算法)进行深入研究分析。研究此类算法的原理与运行特性,分析算法的优缺点,针对算法中存在的一些缺陷进行优化改进,提升算法的运算效率。存在的这些问题包括初始化中心敏感、易陷入局部极值、类簇数目难以确定、距离计算相对复杂等等。(2)为提升聚类算法对大规模数据集的分析处理能力,结合Spark MLlib机器学习库提供的RDD矩阵、向量运算方法,将聚类算法基于Spark分布式大数据框架实现,完成算法的并行化。并采用了Spark提供的一些RDD操作手段来改进算法的执行效率,包括cache/persist数据持久化、累加器、广播变量等操作。(3)搭建Spark大数据实验平台,借助Hadoop框架的Yarn运行Spark框架。基于Spark实验平台,将改进后的算法应用到一些实际数据集上,观察算法的改进效果和应用价值。实验数据集包括两个部分:一部分取自UCI数据集平台,主要有Iris、KDDcup、Wine数据集;另一部分取自某公司采集的City城市人群数据集。实验结果表明,改进算法在聚类准确率、运算性能、实用性上皆得到了良好的提升。