美文网首页
densityPeak密度聚类算法实现原理

densityPeak密度聚类算法实现原理

作者: 一心一意弄算法 | 来源:发表于2017-07-25 10:44 被阅读189次

DP算法的核心思想:密度比邻居节点高、与比其密度大的点的距离相对大的点是聚类中心。

每个样本在密度聚类中,以一个点的形式存在。这个N维空间中的点具备两大要素。
1.密度:在指定半径内出现的邻居数量
2.距离值:与其他比自己密度大的点的距离最小值。

1.1一般计算密度有基于截断距离的密度公式计算:


image.png

其中:


image.png

dc指的是指定的半径大小,dij是样本i和j之间的距离

1.2另有基于高斯核函数的密度计算:

image.png

2.根据定义,距离值的计算如下:

image.png

上述公式无法计算密度最大的点的距离值,定义如下:

image.png

过程解析:
首先,dp算法需要生成两个点之间的距离矩阵。所以100个样本就要计算100平方次运算,以及对应的内存空间。

其次,找出每个样本点的密度个数,根据公式计算每个点的距离值。这样,每个样本点都包含密度值和距离值。

经过上一步骤能够得到一个二维的数据,选择两个值都比较大的点,就是我们想要的聚类中心。如下图所示:


image.png

A图中是数据样本点,B图是每个样本点的密度值和距离值。可以从B图比较直观的看出,10 和 1 两个样本点就是我们想要的聚类中心。像28这样的点,虽然距离虽然很大,但是密度很小,很有可能是噪声点。

最后根据聚类中心找到属于各自类的样本点。到此,算法结束。

dc的选取
一般来说,我们可以选择dc使得点的平均邻居数大概是数据集中点的总数的1-2%。

算法优点
算法复杂度上也比一般的K-means算法的复杂度低。类簇中心找到后,剩余的每个点被归属到它的有更高密度的最近邻所属类簇。类簇分配只需一步即可完成,不像其它算法要对目标函数进行迭代优化。
算法缺点
需要事先计算好所有点与点之间的距离。如果样本太大则整个距离矩阵的内存开销特别大,因此如果只需要得到最终聚类中心,则可以考虑牺牲速度的方式计算每一个样本点的避免直接加载距离矩阵。

相关文章

  • densityPeak密度聚类算法实现原理

    DP算法的核心思想:密度比邻居节点高、与比其密度大的点的距离相对大的点是聚类中心。 每个样本在密度聚类中,以一个点...

  • DBSCAN算法原理

    1. 密度聚类原理 DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度...

  • 13 聚类算法 - 谱聚类

    11 聚类算法 - 密度聚类 - DBSCAN、MDCA12 聚类算法 - 代码案例五 - 密度聚类(DBSCAN...

  • 机器学习 - DBSCAN聚类算法

    1. DBSCAN简介 密度聚类 (亦称基于密度的聚类算法,density-based clustering)算法...

  • 11 聚类算法 - 密度聚类 - DBSCAN、MDCA

    09 聚类算法 - 层次聚类10 聚类算法 - 代码案例四 - 层次聚类(BIRCH)算法参数比较 七、密度聚类概...

  • 简单聚类算法

    一些聚类算法 Birch层次聚类 ,KMeans原形算法 ,AGNES层次算法, DBSCAN密度算法, LVQ原...

  • 基于密度的聚类方法

    基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。 与基于距离的聚类算法不同的是,基于距离的聚类算法...

  • 无监督学习 - 聚类 - DBSCAN

    DBSCAN密度聚类DBSCAN算法是一种基于密度的聚类算法: 聚类的时候不需要预先指定簇的个数 最终的簇个数不定...

  • 【R语言 第2篇】K-means聚类分析流程

    聚类算法是没用因变量的。聚类算法有层次聚类、基于划分的聚类、两步聚类法、基于密度的聚类。 聚类方法的逻辑 客户细分...

  • DBSCAN 聚类

    以下使用Out[数字]:的方式表示代码输出结果 DBSCAN 密度聚类算法 密度聚类是一类常用并且有效的聚类方法,...

网友评论

      本文标题:densityPeak密度聚类算法实现原理

      本文链接:https://www.haomeiwen.com/subject/zsqvtxtx.html