由于简书不方便编写公式,涉及公式部分全部截图,原始ipynb文件点这里。
聚类(clustering)是一类典型的无监督学习(unsupervised learning)方法,它通过对无标记训练样本的学习将数据集中的样本划分为若干个通常是不相交的子集(簇/cluster)。聚类分析的目标是基于元素的相似性进行归类,在生物信息学和模式识别等领域有着广泛的应用,常用的聚类算法有:knn、K-means、K-medoids、DBSCAN等。
作者主要做了什么工作?
首先,作者提出了一个核心假设:类簇中心(cluster center)周围都是低局部密度(low local density)的点,并且与任何一个局部密度较高(a higher local density)的点保持相对较远的距离;基于这个假设,作者提出了一种新的、不需要迭代的快速聚类方法(paper中没有给这个方法命名,这里暂且称之为Fast-Cluster)。
Fast-Cluster算法有哪些优点?
- 不需要进行迭代计算,求解速度快,不存在不收敛的情况
- 可以对非球形数据进行聚类
Fast-Cluster算法描述
1. 符号列表
2. 基本概念
3. 算法流程
相关资源整理
1、JDPlus博客(含python实现):Science论文"Clustering by fast search and find of density peaks"学习笔记
2、Paper专属页面,包含一些样例数据和matlab代码,原始matlab代码的python实现在这里
3、jasonwbw做的python实现,star数量129,参考价值较高
4、cwehmeyer做的python实现