Density Peaks聚类算法

来源:互联网 发布:软件企业认定机构 编辑:程序博客网 时间:2024/06/03 19:24

最近看了一篇关于基于密度的聚类算法---Density Peaks Algortihm, 把自己对该聚类算法的理解,写在这篇文献笔记中。

一、算法思想

     这个DP算法假设聚类中心被较低局部密度的点所围绕,并且这些点距离具有较高局部密度的点有相对更大的距离。因此,对于数据集中的任何数据点i, DP算法计算出两个参数值:

      (1) 局部密度

      计算局部密度需要一个距离阈值 , 局部密度就是距离某点i的距离小于距离阈值的所有点的数量。在文献中推荐设置阈值已保证局部密度在样本总数的1%-5%之间。

      (2) 点i距离高局部密度点的距离

       点i距离高局部密度点的距离,是要计算局部密度比点i的局部密度高的所有点X,距离点i距离最小的距离。即: min(X-i)。 对于所有数据点中的具有最大局部密度的数据点, 它的距离值设置为其他所有距离中最大的一个。当然需要注意,局部密度最大的点肯定是一个聚类中心。


二、聚类过程

     假设在计算局部密度和距离较高密度点的距离后,会得到两个向量值densityVector和distanceVector。通过分析这个向量可发现,若一个点的局部密度很小,但是它距离较高密度点的最小距离很大,那么这个点很有可能就是离群点,也就是异常点。根据这两个向量,选择聚类的参考的时候,原始的基于密度的聚类算法,是单独以密度为参考单位,选择聚类的类别。 加上距离的参考,可以放大原来两个密度很相近的两个聚类点。这个过程如下:

   1. 通过计算densityVector*distanceVector。

   2.  对计算结果,进行将序排列,选择topK个结果为聚类中心点(几个中心点,需根据逻辑自己设定)。

   3. 每个数据点通过它的较高密度的最紧邻的列表选择为本数据点的类标。


最后,本算法可总结为:首先搜索合适的局部密度最大点作为聚类中心,然后再将聚类中心从高密度向低密度点依次传播。



     

阅读全文
0 0