论文部分内容阅读
聚类算法在数据挖掘技术中起着至关重要的作用,通常用于衡量数据源中不同对象之间的相似性并分析,也可作为数据挖掘中其他算法的预处理步骤。Hadoop平台能够将整个计算任务分配到资源池上的多个节点进行并行化运算,具有高效处理海量数据的能力。研究与Hadoop相结合的聚类算法有利于实现或提升原有算法处理海量数据的能力。本文针对传统K-means算法通过随机选取初始类簇中心点很容易导致聚类效果不佳的缺点,提出了一种基于Hadoop平台下K-means的优化算法,优化重点主要在初始类簇中心点的选择上,其基本思路是遵循“最近最大”原则,基于Mahout数据模型下任意选择一个对象设置为第一个初始类簇中心点,接着设置第二个初始类簇中心点是与第一个初始类簇中心点相距最远的样本,然后再设置第三个初始类簇中心点是与已设置的初始类簇中心点中相距最近的样本中距离值最大的样本点,重复迭代便可以得到一个数量为K值的初始类簇中心点集合,并通过MapReduce编程模型进行并行化分析与实现。其次,针对K-means优化算法也无法准确估算类簇中心点个数K值,又提出了Hadoop平台下基于快速搜索与密度峰值查找的聚类算法(CFSFDPH),CFSFDPH算法以“化整为一”的原则首先将数据集分成多个组,然后基于MapReduce编程模型下对各组独立执行一次CFSFDP算法,从而产生各组的局部聚类结果集并标记各个非聚类中心点的归类属性,再通过结合决策图获取各组聚类结果集中最具代表性的n个局部聚类中心点集,实现Reduce函数对该集合进行CFSFDP聚类,以此得到整个数据集的最终聚类中心点,最后实现Map函数更新所有点的归类属性值。通过集群加速比和聚类结果实验对比表明,当数据量较少时K-means优化算法的效果要优于另外两种算法,当数据量越庞大时则CFSFDPH算法效果最佳。