针对传统K-means算法在处理海量数据时存在距离计算瓶颈及因迭代计算次数增加导致内存不足的问题,提出了一种基于Spark框架的SBTICK-means(Spark Based Triangle Inequality Canopy-K-means)并行聚类算法。为了更好地解决K值选取的盲目...针对传统K-means算法在处理海量数据时存在距离计算瓶颈及因迭代计算次数增加导致内存不足的问题,提出了一种基于Spark框架的SBTICK-means(Spark Based Triangle Inequality Canopy-K-means)并行聚类算法。为了更好地解决K值选取的盲目性和随机性的问题,该算法利用Canopy进行预处理得到初始聚类中心点和K值;在K-means迭代计算过程中进一步利用距离三角不等式定理减少冗余计算、加快聚类速度,结合Spark框架实现算法的并行化,充分利用Spark的内存计算优势提高数据的处理速度,缩减算法的整体运行时间。实验结果表明,SBTICK-means算法在保证准确率的同时大大提高了聚类效率,与传统的K-means算法、Canopy-K-means算法和基于MapReduce框架下的该算法相比,在加速比、扩展比以及运行速率上都有一定的提高,从而更适合应用于海量数据的聚类研究。展开更多
文摘针对传统K-means算法在处理海量数据时存在距离计算瓶颈及因迭代计算次数增加导致内存不足的问题,提出了一种基于Spark框架的SBTICK-means(Spark Based Triangle Inequality Canopy-K-means)并行聚类算法。为了更好地解决K值选取的盲目性和随机性的问题,该算法利用Canopy进行预处理得到初始聚类中心点和K值;在K-means迭代计算过程中进一步利用距离三角不等式定理减少冗余计算、加快聚类速度,结合Spark框架实现算法的并行化,充分利用Spark的内存计算优势提高数据的处理速度,缩减算法的整体运行时间。实验结果表明,SBTICK-means算法在保证准确率的同时大大提高了聚类效率,与传统的K-means算法、Canopy-K-means算法和基于MapReduce框架下的该算法相比,在加速比、扩展比以及运行速率上都有一定的提高,从而更适合应用于海量数据的聚类研究。