"Clustering by fast search and find of density peaks"是20114年6月份在《Science》期刊上发表的的一篇论文,论文中提出了一种非常巧妙的聚类算法。
首先,该算法是基于这样的假设:
(1)聚类中心密度要高
(2)高密度中心点之间的距离应该相对远一些。
异常点都会被排除,同时也和形状无关。
首先,这种方法不像原先的Kmeans那样随机初始种子点然后迭代,它是根据样本的密度峰值来确定聚类中心的,当然聚类中心确定之后,后面的问题就方便多了,由于不需要迭代,时间消耗非常低,小规模的话可以忽略。下面看看这篇文章是怎么找到局部密度峰值的(其实这里的密度峰值有点类似正态分布的样子)。
1、局部密度
局部密度就定义为别的所有点的距离小于截断距离的个数。
2、Delta距离
Delta距离定义取比该点局部密度大的所有点的最小距离,如果这个点已经是局部密度最大的点,那么Delta赋值为别的所有点到它的最大距离。
最后,相对应的聚类中心就是相对Delta值比较大的点,如果好几个相近点的Delta值都比较大,而且比较接近,那么任何一个都可以当作该类的中心。
实验测试:
参考:
http://people.sissa.it/~laio/Research/Res_clustering.php
http://blog.csdn.net/itplus/article/details/38926837
http://blog.csdn.net/jdplus/article/details/40351541
本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1910606,如需转载请自行联系原作者