论文部分内容阅读
聚类是数据挖掘中非常热门的研究方向,是将数据集划分为不同的簇的过程,其目的是使同簇中的样本相异度较低,不同簇间的样本相异度较高。随着信息技术的快速发展与海量数据的产生,人们对聚类算法的效率、可靠性以及可扩展性的要求逐渐提高,使得海量数据聚类变得尤为重要。在众多聚类算法中,基于划分的K-means聚类算法因其原理简单、易操作,一直深受欢迎,但随着对算法的不断研究,其优缺点逐渐的暴露出来,本文主要研究在海量数据环境下K-means算法聚类性能的优化问题。从提高聚类算法准确率和效率的角度出发,本文对已有的基于划分的聚类算法进行了研究,主要解决了K-means算法中初始聚类中心点选取以及相异度函数对离群点、噪声敏感问题,并在此基础上,提出了基于MapReduce框架下的K-means聚类算法的改进。首先,针对K-means算法中的相异度函数是基于欧氏距离来计算的,对孤立点、离群点及其敏感,并易受噪声影响,尤其当数据量增多、属性类型复杂时,不能准确地计算出数据样本之间的相异程度问题。通过利用Chebychev Distance对欧氏距离进行内部加权,即用归一化思想来消除欧氏距离对噪声点和离群点敏感问题,使得数据对象能够更科学地划分到所属的聚类集中,进而给出了一种新的相异度公式。其次,通过改进MapReduce编程模型,把K-means算法部署在改进后的MapReduce编程模型并行化,在保证聚类质量的情况下加快K-means算法处理海量数据的速度。为验证改进算法的有效性,在UCI数据集上进行仿真实验,并与现有改进的K-means算法进行比较分析,实验结果表明:改进的算法提高了聚类的准确率和收敛速度。最后,将改进后的聚类算法应用到Uber和糖尿病数据集的分析中。对Uber出租车数据进行了聚类分析,帮助出租车司机把握城市需求状况,为用户提供更快捷的出行方式;对糖尿病患者的数据进行聚类预测,分析患者的各项指标,对患者是否存在糖尿病的风险进行了预测,说明了算法在医学数据分析方面具有良好的应用前景。