码迷,mamicode.com
首页 > 其他好文 > 详细

Science论文"Clustering by fast search and find of density peaks"学习笔记

时间:2014-10-23 00:05:18      阅读:368      评论:0      收藏:0      [点我收藏+]

标签:机器学习   数据挖掘   clustering algorithm   

"Clustering by fast search and find of density peaks"是今年6月份在《Science》期刊上发表的的一篇论文,论文中提出了一种非常巧妙的聚类算法。经过几天的努力,终于用python实现了文中的算法,下面与大家分享一下自己对算法的理解及实现过程中遇到的问题和解决办法。


首先,该算法是基于这样的假设:类簇中心被具有较低局部密度的邻居点包围,且与具有更高密度的任何点有相对较大的距离。对于每一个数据点bubuko.com,布布扣,要计算两个量:点的局部密度bubuko.com,布布扣和该点到具有更高局部密度的点的距离bubuko.com,布布扣,而这两个值都取决于数据点间的距离bubuko.com,布布扣

数据点bubuko.com,布布扣的局部密度bubuko.com,布布扣定义为式(1)

bubuko.com,布布扣

其中,如果bubuko.com,布布扣,那么bubuko.com,布布扣;否则bubuko.com,布布扣bubuko.com,布布扣是一个截断距离。基本上,bubuko.com,布布扣等于与点bubuko.com,布布扣的距离小于bubuko.com,布布扣的点的个数。算法只对不同点的bubuko.com,布布扣的相对大小敏感,这意味着对于大数据集,分析结果对于bubuko.com,布布扣的选择有很好鲁棒性。


数据点bubuko.com,布布扣bubuko.com,布布扣是点到任何比其密度大的点的距离的最小值式(2)

bubuko.com,布布扣

对于密度最大的点,我们可以得到bubuko.com,布布扣


图1.中的简单示例展示了算法的核心思想。图1.A展示了二维空间中的28个点。可以发现点1和点10的密度最大,故将其作为类簇中心。图1.B展示了对于每一个点的bubuko.com,布布扣作为bubuko.com,布布扣

bubuko.com,布布扣

            图1.算法在二维空间的展示。(A)点的分布 数据点按照密度降序排列。(B)(A)中数据的决策图 不同的颜色代表不同的类簇。


函数的图示,称其为决策图。点9和点10的bubuko.com,布布扣相似,但bubuko.com,布布扣值却有很大差别:点9属于点1的类簇,其它几个有更高的bubuko.com,布布扣的点距其很近,然而点10的有更高密度的最近邻属于其它的类簇。所以,正如预期的那样,只有具有高bubuko.com,布布扣和相对较高的bubuko.com,布布扣的点才是类簇中心。因为点262728是孤立的,所以有相对较高的bubuko.com,布布扣值和低bubuko.com,布布扣值,它们可以被看作是由单个点做成的类簇,也就是异常点。


类簇中心找到后,剩余的每个点被归属到它的有更高密度的最近邻所属类簇。类簇分配只需一步即可完成,不像其它算法要对目标函数进行迭代优化。


在聚类分析中,定量的衡量分配的可信度是很重要的。在该算法中,首先为每个类簇定义一个边界区域(即分配到该类簇但于其它类簇的点的距离小于bubuko.com,布布扣的点的集合),然后为每个类簇的找到其边界区域中密度最高的点,并以bubuko.com,布布扣来表示该点的密度。类簇中局部密度值比bubuko.com,布布扣大的点被看作是类簇的核心部分(即分配到该类簇的可靠性较高),其他点被看作是类簇的光晕部分(亦可以被看作是噪声)


bubuko.com,布布扣

图2.合成点分布的结果。(A)绘制的点分布的概率分布。(BC)分别为4000和1000样本点的点分布。每个点以其颜色表示所属类簇,黑色点属于光晕类簇。(DE) 相应的决策图,彩色的点表示类簇中心。(F)被归属到错误的类簇的点的比例作为样本维度的函数。误差线表明均值的标准差。


从图2.(F)中可以看到,错分点的比例即使在只有1000个点的小样本中仍保持在1%以下,说明算法有很好的鲁棒性。


为图2.B中数据赋予不同的bubuko.com,布布扣值,却得到几乎一样的结果。一般来说,我们可以选择bubuko.com,布布扣使得点的平均邻居数大概是数据集中点的总数的1-2%。对于较小的数据集,bubuko.com,布布扣可能会被大的统计误差影响,在这种情况下,需要通过更准确的方法估计密度(例如可以采取文章中提到的指数核的方法)。


从下图中可以看到,该算法对于各种数据级都能达到很好的聚类效果。

bubuko.com,布布扣


算法对于不严重影响bubuko.com,布布扣以下的距离,也就是保持等式(1)的密度估计量不变的度量标准的变化有很好的鲁棒性。很明显,等式(2)中的距离将会被这种度量标准的改变所影响,但很容易意识到决策图的结构(尤其是有较大的bubuko.com,布布扣的点的个数)是一个按密度值排序的结果,并不是距离较远的点的真实距离。









Science论文"Clustering by fast search and find of density peaks"学习笔记

标签:机器学习   数据挖掘   clustering algorithm   

原文地址:http://blog.csdn.net/jdplus/article/details/40351541

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!