4.基于密度峰值的聚类算法

主要思想是寻找被低密度区与分离的高密度区域,基于的假设为:

1)类簇中心点的密度大于周围邻居点的密度;

2)类簇中心点与更高密度点之间的距离相对较大

因此有两个需要计算的量:局部密度pi和高局部密度点距离(与高密度点之间的距离) δi

密度峰值聚类算法应用场景 密度峰值聚类算法综述_类簇

pi理解:其中dc表示截断距离,这个公式的意义就是找到与第i个数据点之间的距离小于截断距离的数据点的个数(某个点的距离到该点的距离小于dc 则密度加一),并将其作为第i个数据点真的密度。

密度峰值聚类算法应用场景 密度峰值聚类算法综述_类簇_02

δi理解:在比对象i局部密度高的所有对象中,到对象i最近的距离。对于局部密度最大点,δi实际上是该点和其他所有点距离值的最大值。

那些有比较大的局部密度pi和很大的高局部密度δi会被认为是簇的中心,但高局部密度δi很大但局部密度pi较小的会被认为是异常点。确定簇中心之后,其他的点按照距离已知簇的中心最近进行分类,也可以按照密度可达的方法进行分类。

算法聚类整个过程实例:在一个二维空间对数据聚类

1.首先计算每个点的局部密度pi

密度峰值聚类算法应用场景 密度峰值聚类算法综述_数据集_03

2.然后对于每个点i计算在局部密度比i高的所有对象中,到对象i最近的距离δi。

密度峰值聚类算法应用场景 密度峰值聚类算法综述_聚类_04

3.对于每个点,绘制出局部密度pi与高局部密度点距离δi的关系散点图

密度峰值聚类算法应用场景 密度峰值聚类算法综述_数据集_05

4.局部密度和高局部密度距离都很大的作为簇中心。

密度峰值聚类算法应用场景 密度峰值聚类算法综述_数据集_06

5.将其他的点分配给距离更近的有和更高的局部密度的簇。

密度峰值聚类算法应用场景 密度峰值聚类算法综述_类簇_07

可以看到 1和10的pi和δi都比较大可以做簇的中心,而26、27、28三个点 δi比较大但pi比较小,所以是异常点。

注意点:肉眼观察确定聚类中心,没有定量分析,包含主观因素。作者给出了一个确定聚类中心个数的提醒,将两个值综合考虑的量

密度峰值聚类算法应用场景 密度峰值聚类算法综述_数据集_08

显然该值越大,则越有可能是聚类中心。因此只需对其降序排列,然后从前到后取若干个数据点作为聚类中心了。

在一个下标为i,纵坐标为ri的途中可以发现从非聚类中心到聚类中心有一个明显的跳跃,可以用肉眼或者是数值检测判断出来。

密度峰值聚类算法应用场景 密度峰值聚类算法综述_数据集_09

其中dc的选择取决于肉感数据集的经验值,1%-2%。