Science上发表的超赞聚类算法

算法思想

转载:http://www.cnblogs.com/kemaswill/p/3813854.html

该算法的假设是, 类簇的中心由一些局部密度比较低的点围绕, 并且这些点距离其他高局部密度的点的距离都比较大. 首先定义两个值: 局部密度[Math Processing Error]以及到高局部密度点的距离[Math Processing Error]:

[Math Processing Error]

其中

[Math Processing Error] [Math Processing Error]是一个截断距离, 是一个超参数. 所以[Math Processing Error]相当于距离点[Math Processing Error]的距离小于[Math Processing Error]的点的个数. 由于该算法只对[Math Processing Error]的相对值敏感, 所以对[Math Processing Error]的选择比较鲁棒, 一种推荐做法是选择[Math Processing Error]使得平均每个点的邻居数为所有点的1%-2%.

[Math Processing Error]

对于密度最大的点, 设置[Math Processing Error]. 注意只有那些密度是局部或者全局最大的点才会有远大于正常的相邻点间距.

聚类过程

那些有着比较大的局部密度[Math Processing Error]和很大的[Math Processing Error]的点被认为是类簇的中心. 局部密度较小但是[Math Processing Error]较大的点是异常点.在确定了类簇中心之后, 所有其他点和距离其最近的密度大于该点的点属于同一个类簇. 图例如下:

Screen Shot 2014-06-28 at 下午09.26.59

左图是所有点在二维空间的分布, 右图是以[Math Processing Error]为横坐标, 以[Math Processing Error]为纵坐标, 这种图称作决策图(decision tree). 可以看到, 1和10两个点的[Math Processing Error][Math Processing Error]都比较大, 作为类簇的中心点. 26, 27, 28三个点的[Math Processing Error]也比较大, 但是[Math Processing Error]较小, 所以是异常点.

聚类分析

在聚类分析中, 通常需要确定每个点划分给某个类簇的可靠性. 在该算法中, 可以首先为每个类簇定义一个边界区域(border region), 亦即划分给该类簇但是距离其他类簇的点的距离小于[Math Processing Error]的点. 然后为每个类簇找到其边界区域的局部密度最大的点, 令其局部密度为[Math Processing Error]. 该类簇中所有局部密度大于[Math Processing Error]的点被认为是类簇核心的一部分(亦即将该点划分给该类簇的可靠性很大), 其余的点被认为是该类簇的光晕(halo), 亦即可以认为是噪音. 图例如下

Screen Shot 2014-06-28 at 下午09.27.11

A图为生成数据的概率分布, B, C二图为分别从该分布中生成了4000, 1000个点. D, E分别是B, C两组数据的决策图(decision tree), 可以看到两组数据都只有五个点有比较大的[Math Processing Error]和很大的[Math Processing Error]. 这些点作为类簇的中心, 在确定了类簇的中心之后, 每个点被划分到各个类簇(彩色点), 或者是划分到类簇光晕(黑色点). F图展示的是随着抽样点数量的增多, 聚类的错误率在逐渐下降, 说明该算法是鲁棒的.

最后展示一下该算法在各种数据分布上的聚类效果, 非常赞.

Screen Shot 2014-06-28 at 下午09.27.22

参考文献:

[1]. Clustering by fast search and find of density peak. Alex Rodriguez, Alessandro Laio


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值