论文部分内容阅读
聚类算法是数据挖掘中的重要内容,能够从数据中提取出隐藏的有用信息和知识来为人们服务,在工业、商业以及科研领域都得到了广泛应用。随着当今社会数据量急剧增加,单机聚类算法的计算能力渐渐无法满足需求,广大互联网公司为了从激烈的商业竞争中脱颖而出以获得商业成功和大量的经济利益,纷纷为大规模数据的处理寻求有效策略,于是多台计算机共同参与运算的分布式聚类算法成为当前研究热点。云计算平台是一个优秀的新型商业计算模型,通过虚拟化技术把互联网中的节点资源相融合来提供优越的计算能力,并且能够根据计算任务中任务量的实时变化情况来动态扩展集群中的节点。系统将待处理的计算任务合理分配到计算机集群中的节点上,根据实际需求得到所需的存储空间和计算能力等资源,用户在无需理解云内部的知识和细节的情况下也可以使用云平台中的基础设施。Hadoop作为Apache基金会开发的开源云计算平台,以一种高效可靠可伸缩的方式处理数据,此外还具有高容错性和低成本等优点,是一个能够分布式处理海量数据的软件框架。Hadoop核心设计是底部HDFS(分布式文件系统)和上层MapReduce(编程模式),分别为海量数据提供存储和计算。本文主要研究如何运用云平台中大量计算机节点的并行计算能力来解决大规模数据聚类的难题。针对Kmeans算法中一些不足之处提出改进:采用Canopy算法作为Kmeans聚类的初始步骤,并基于“最小最大原则”优化初始聚类中心的选取;对Kmeans迭代过程加以优化使整体计算量得到降低,进一步提高算法效率。详细分析DBSCAN算法在参数选择,内存使用、I/O开销等方面存在的问题,提出了一个基于层次的优化算法。既解除了因参数选择不当而对算法效率造成的影响,还在一定程度上降低了查询次数从而减小I/O开销。最后,通过搭建Hadoop平台分别对基于MapReduce的Kmeans和DBSCAN并行优化算法进行一系列的测试实验来验证性能。实验表明:Kmeans优化算法在迭代速度及聚类结果准确率上有所提升;DBSCAN优化算法在正确率和实效性方面均得到改善;并且通过加速比实验证明本文的并行算法更适合处理大规模数据集。