聚类算法(四)——基于密度峰值的聚类算法
4.基于密度峰值的聚类算法
主要思想是寻找被低密度区与分离的高密度区域,基于的假设为:
1)类簇中心点的密度大于周围邻居点的密度;
2)类簇中心点与更高密度点之间的距离相对较大
因此有两个需要计算的量:局部密度pi和高局部密度点距离(与高密度点之间的距离) δi
pi理解:其中dc表示截断距离,这个公式的意义就是找到与第i个数据点之间的距离小于截断距离的数据点的个数(某个点的距离到该点的距离小于dc 则密度加一),并将其作为第i个数据点真的密度。
δi理解:在比对象i局部密度高的所有对象中,到对象i最近的距离。
那些有比较大的局部密度pi和很大的高局部密度δi会被认为是簇的中心,但高局部密度δi很大但局部密度pi较小的会被认为是异常点。确定簇中心之后,其他的点按照距离已知簇的中心最近进行分类,也可以按照密度可达的方法进行分类。
算法聚类整个过程实例:在一个二维空间对数据聚类
1.首先计算每个点的局部密度pi
2.然后对于每个点i计算在局部密度比i高的所有对象中,到对象i最近的距离δi。
3.对于每个点,绘制出局部密度pi与高局部密度点距离δi的关系散点图
4.局部密度和高局部密度距离都很大的作为簇中心。
5.将其他的点分配给距离更近的有和更高的局部密度的簇。
可以看到 1和10的pi和δi都比较大可以做簇的中心,而26、27、28三个点 δi比较大但pi比较小,所以是异常点。
注意点:肉眼观察确定聚类中心,没有定量分析,包含主观因素。作者给出了一个确定聚类中心个数的提醒,将两个值综合考虑的量
显然该值越大,则越有可能是聚类中心。因此只需对其降序排列,然后从前到后取若干个数据点作为聚类中心了。
在一个下标为i,纵坐标为ri的途中可以发现从非聚类中心到聚类中心有一个明显的跳跃,可以用肉眼或者是数值检测判断出来。
其中dc的选择取决于肉感数据集的经验值,1%-2%。
参考:https://blog.csdn.net/weixin_40848065/article/details/88642839