zoukankan      html  css  js  c++  java
  • 《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特性并行化编程, 为更多的大规模数据应用提供了有效支撑,因此这也是一个具有重要价值的研究方向。

  • 相关阅读:
    LNMP源码安装配置
    CentOS6 Apache配置详解(上)
    CentOS6 Apache配置详解(中)
    BZOJ4152 AMPPZ2014 The Captain(最短路)
    BZOJ4028 HEOI2015公约数数列(分块)
    Codeforces Round #517 Div. 1翻车记
    BZOJ4027 HEOI2015兔子与樱花(贪心)
    BZOJ4000 TJOI2015棋盘(状压dp+矩阵快速幂)
    Codeforces Round #510 Div. 2 Virtual Participate记
    BZOJ5190 Usaco2018 Jan Stamp Painting(动态规划)
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/13155991.html
Copyright © 2011-2022 走看看