论文部分内容阅读
聚类是数据挖掘中非常热门的研究方向。聚类是将数据对象划分为不同的簇的过程,其目的是使同簇中对象具有较高相似度,不同簇间对象相似度较低。随着信息技术的快速发展与数据量的不断扩张,人们对聚类算法的效率、可靠性以及可扩展性的要求逐渐提高,海量数据聚类变得尤为重要。在众多聚类算法中,基于划分的K-means聚类算法因其简单性,一直深受欢迎。本文主要研究在海量数据环境下K-means聚类的性能优化问题。为满足海量数据的处理需求,在单机处理能力有限的情况下,分布式计算模型的应用成为大势所趋。很多学者借助MapReduce并行编程框架来进行K-means聚类计算,在计算性能方面有了一定的提高。但是,在利用MapReduce进行K-means计算时会有多次任务迭代,每次迭代时Mapper均需从HDFS文件系统上读取原始数据,同时所有数据在整个集群网络中洗牌,传送给对应的Reducer,这导致了高昂的I/O和网络开销,在目前并没有被很好地解决。针对MapReduce处理K-means聚类时的瓶颈,本文提出了一种基于MapReduce的海量数据快速K-means计算模型,通过随机均匀概率抽样和迭代抽样方法减少数据量,在MapReduce单个任务内部进行迭代计算,避免了MapReduce在处理时任务重复启动、海量数据重复读取和多次网络洗牌的弊端,从而降低I/O和网络开销,实现快速聚类,降低数据集中孤立点对于聚类结果的影响。同时,本文针对计算模型提出了两种不同的中间数据合并策略WMC和DMC,分别从不同方面提高了聚类结果的准确度。在集群上的大量实验表明本文提出的方法能够有效提高海量数据K-means聚类的效率,优化算法的健壮性和可扩展性强,同时能够降低数据集中异常点对于聚类结果的影响。