快速迭代聚类
谱聚类算法的原理
在分析快速迭代聚类之前,我们先来了解一下谱聚类算法。谱聚类算法是建立在谱图理论的基础上的算法,与传统的聚类算法相比,它能在任意形状的样本空间上聚类且能够收敛到全局最优解。 谱聚类算法的主要思想是将聚类问题转换为无向图的划分问题。
在分析快速迭代聚类之前,我们先来了解一下谱聚类算法。谱聚类算法是建立在谱图理论的基础上的算法,与传统的聚类算法相比,它能在任意形状的样本空间上聚类且能够收敛到全局最优解。 谱聚类算法的主要思想是将聚类问题转换为无向图的划分问题。
当数据是以流的方式到达的时候,我们可能想动态的估计(estimate
)聚类的簇,通过新的到达的数据来更新聚类。spark.mllib
支持流式k-means
聚类,并且可以通过参数控制估计衰减(decay
)(或“健忘”(forgetfulness
))。 这个算法使用一般地小批量更新规则来更新簇。
本文会介绍一般的k-means
算法、k-means++
算法以及基于k-means++
算法的k-means||
算法。在spark ml
,已经实现了k-means
算法以及k-means||
算法。 本文首先会介绍这三个算法的原理,然后在了解原理的基础上分析spark
中的实现代码。
二分k-means
算法是层次聚类(Hierarchical clustering)的一种,层次聚类是聚类分析中常用的方法。 层次聚类的策略一般有两种:
自底向上
的方法,每一个观察者初始化本身为一类,然后两两结合自顶向下
的方法,所有观察者初始化为一类,然后递归地分裂它们 二分k-means
算法是分裂法的一种。