《Spark环境下K-means初始中心点优化研究综述》学习笔记

通过知网可以查到这篇文章。于2020年3月发表在计算机应用研究。

背景

K-means是聚类算法的经典算法。由于运行时,初始聚类中心点和簇数的不确定性,使聚类结果存在很大不稳定性。两个缺点:一是要初始化中心,随机选择,具有不确定性;二是要有几个中心,也具有不确定性。

一般对K-means的改进,是中心点选取的改进,减少算法迭代次数,提高收敛速度和准确性。

Spark核心组件MLlib实现了基于RDD的K-means算法,没有改进。

K-means综述

K-means是一种无监督学习,基于划分的聚类算法,需要预先指定聚类数以及中心,不断更新聚类中心,逐步降低目标函数误差值,当目标函数收敛,得到最终聚类结果。

会造成局部最优解。

K-means的改进

使用网格优化、残差分析、hash算法、萤火虫优化、基于密度和距离改进等优化方法预先确定初始聚类中心店,解决算法随机选取中心点带来的不稳定性。

或者使用余弦相似度度量距离、基于方差的聚类评估标准改善算法的聚类效果,提高准确性。

基于Spark的K-means算法优化策略

一般有三个阶段map,combine,reduceByKey。
map过程,初始化中心点,计算每个数据到中心的距离,选取距离最小的中心点作为中心点。
combine过程,将同一中心点数据汇聚,计算同一中心点数据之和,局部聚类。
reduceByKey过程,汇总局部聚类结果,计算距离并更新中心点,判断是否收敛。

基于数据划分的改进策略

有研究人员使用二叉树、四叉树将数据空间划分为单元格,对数据进行划分。

采用KD树对数据划分,改善随机选取初始中心点的缺陷。马菁等人实现了在Spark环境下的KD树并行预处理的K-means算法,在大数据集上表现良好。

初始化中心点的K-means算法改进

算法过度依赖初始化的中心点。一部分学长采用预聚类、预抽样,先选取K个中心,改进了随机选取中心的过程,达到算法稳定性。

基于Canopy预聚类算法的改进方法。

徐鹏程等人在Spark并行计算框架下,引入Canopy算法消除了K-means算法初始K值的不确定性。

还有结合最大最小距离算法。

结合粒子群算法。

结束语

基于内存计算框架 Spark 的 K-means并行化编程。Kmeans 在对大规模数据聚类时,通常由于其大量的迭代计算无
法快速完成,需要借助现有的内存计算框架对算法过程进行加速。所以对 K-means 算法的改进除了改进算法本身处理过程之外,还需要针对 K-means算法迭代计算的特点, 将其部署在适用机器学习迭代计算的 Spark框架上进行。目前, 已有很多学者将改进后的算法结合 Spark特性并行化编程, 为更多的大规模数据应用提供了有效支撑,因此这也是一个具有重要价值的研究方向。

你可能感兴趣的:(《Spark环境下K-means初始中心点优化研究综述》学习笔记)