精华内容
下载资源
问答
  • 这是离开公司前做的最后一个算法,之前做的一些算法,由于老大的指点,少走了很多弯路,密度峰值聚类这个是纯粹自己做的,走了很多弯路,在这里和大家分享借鉴一下,共勉!一、简单介绍及原理顾名思义,这是一种基于...

    这是离开公司前做的最后一个算法,之前做的一些算法,由于老大的指点,少走了很多弯路,密度峰值聚类这个是纯粹自己做的,走了很多弯路,在这里和大家分享借鉴一下,共勉!

    一、简单介绍及原理

    顾名思义,这是一种基于密度的聚类算法,以高密度区域作为判断依据,这种非参数的方法,和传统方法比,适用于处理任何形状的数据集,而且无需提前设置簇的数量。

    这里提到一个聚类中心的概念:类簇的中心是由一些局部密度较低的点所围绕,且这些点距离其他高密度的点的距离都比较远,通过计算最近邻的距离,得到聚类中心,并依据密度大小进行排列。

    我在这里借鉴了——马春来,单洪,马涛.一种基于簇中心点自动选择策略的密度峰值聚类算法.计算机科学.2016,43(7)。这个文献中提供了一种自动选择策略的方法,大家有兴趣可以看一下。

    对于一个数据集D={p1,p2,……pn}的点pi,计算每个点的局部密度ρi和相邻密度点的距离di,这里提出一个概念,簇中心权值:γi= ρi * di  。

    通过将簇中心权值降序排列,我们可以通过下降的趋势(斜率)找出拐点所在。

    下图为选择聚类中心的方法

    省略了不少东西,大家可以下载那份文献自己细细研读。

    二、一些遇到的问题及我的心得

    1、有现成的代码固然好,但是别人的代码解决的问题终归和你的问题不一样。不如自己从头到尾撸一遍,结合自己的情况进行修改。

    2、传统的密度峰值聚类需要自己设置参数,稍微加以改进可以扔掉参数,让它自己迭代。

    3、为什么要将密度和距离相乘:这样可以避免某一项的值过小,导致特征不明显

    4、注意归一化的问题,具体情况具体对待。(在归一化这个问题坑了我蛮久)

    5、拐点的确定问题,在算法构建的初始阶段,最好人工重复确认一下,避免盲目自信到后面找不到问题所在。

    6、若某两个或多个聚类点距离较近,将其归为一个同一个聚类中心。

    展开全文
  • 快速搜索密度峰值聚类实现代码
  • 基于密度峰值聚类的在线乘车驾驶员角色研究
  • 基于点距离和密度峰值聚类的社区发现方法
  • 初学密度峰值聚类算法时用参考的博博客 1.基于密度峰值的聚类算法 https://blog.csdn.net/weixin_40848065/article/details/88642839 2.密度峰值聚类算法(DPC) ...

    初学密度峰值聚类算法时用参考的博博客

    1.基于密度峰值的聚类算法
    https://blog.csdn.net/weixin_40848065/article/details/88642839

    2.密度峰值聚类算法(DPC)
    https://www.cnblogs.com/kailugaji/articles/11379198.html

    展开全文
  • 针对密度峰值聚类算法CFSFDP(clustering by fast search and find of density peaks)计算密度时人为判断截断距离和人工截取簇类中心的缺陷,提出了一种基于非参数核密度估计的密度峰值聚类算法。首先,应用非参数...
  • 现有基础矩阵鲁棒估计方法存在精度不高、准确性较低等不足,基于此,提出一种利用多核学习改进密度峰值聚类的基础矩阵估计方法。首先,针对密度峰值算法需要选取参数和无法自动聚类等不足,引入多核学习和γ分布图进行...
  • 针对密度峰值聚类算法(DPC)在处理维数较高、含噪声及结构复杂数据集时聚类性能不佳问题,提出一种结合K近邻的改进密度峰值聚类算法(IDPCA)。该算法首先给出新的局部密度度量方法来描述每个样本在空间中的分布...
  • 基于密度峰值聚类的流量异常检测方法,曾霄笑,杨杨,在网络中,流量是体现网络状态的一个重要数据,网络流量的异常通常反映出网络中的异常状态。通过对流量进行异常检测,能够及时发
  • [转] 密度峰值聚类算法(DPC)

    千次阅读 2019-09-25 07:03:03
    [转] 密度峰值聚类算法(DPC) 凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 基于密度峰值的聚类算法全称为基于快速搜索和发现密度峰值的聚类算法(clustering by fast search and find of density peaks, ...

    [转] 密度峰值聚类算法(DPC)

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

        基于密度峰值的聚类算法全称为基于快速搜索和发现密度峰值的聚类算法(clustering by fast search and find of density peaks, DPC)。它是2014年在Science上提出的聚类算法,该算法能够自动地发现簇中心,实现任意形状数据的高效聚类。

        该算法基于两个基本假设:1)簇中心(密度峰值点)的局部密度大于围绕它的邻居的局部密度;2)不同簇中心之间的距离相对较远。为了找到同时满足这两个条件的簇中心,该算法引入了局部密度的定义。

        假设数据点的局部密度为,数据点到局部密度比它大且距离最近的数据点的距离为,则有如下定义:

    式中,之间的距离;为截断距离;为逻辑判断函数,,否则

        这里对于局部密度最大的数据点,它的

        根据以上定义,通过构造相对于的决策图,进行数据点分配和噪声点剔除,可以快速得到最终的聚类结果。算法1给出了基于快速搜索和发现密度峰值的聚类算法的具体步骤。首先,基于快速搜索和发现密度峰值的聚类算法对任意两个数据点计算它们之间的距离,并依据截断距离计算出任意数据点;然后,算法根据,画出对应的聚类决策图;接着,算法利用得到的决策图,将都相对较高的数据点标记为簇的中心,将相对较低但是相对较高的点标记为噪声点;最后,算法将剩余的数据点进行分配,分配的规则为将每个剩余的数据点分配到它的最近邻且密度比其大的数据点所在的簇。

    算法1 基于快速搜索和发现密度峰值的聚类算法

        下面举一个简单的例子。在图1中,数据点的分布情况如图1(左)所示,可以看出数据集包含两个簇,分别用蓝色和红色标出,噪声用黑色标出。利用基于快速搜索和发现密度峰值算法,可以得到图1(右)的决策图。在决策过程中可以发现点1和点10的都相对较高,因此它们被标记为中心点。点26~点28的相对较低但是相对较高,因此它们被标记为噪声。其他的点将被分配到它的最近邻且密度比其大的数据点所在的簇中去。

    图1 基于快速搜索和发现密度峰值的聚类算法例子

        基于快速搜索和发现密度峰值的聚类算法,想法非常直观,能够快速发现密度峰值点,并能够高效进行样本分配和发现噪声点。同时,因为该方法非常适用于大规模数据的聚类分析,因此具有很好的研究价值和应用前景。

    参考文献:

    [1] Rodriguez A, Laio A. Clustering by fast search and find of density peaks [J]. Science, 2014, 344(6191): 1492-1496.

    [2] 张宪超. 数据聚类. 北京:科学出版社, 2017.06.

    转载于:https://www.cnblogs.com/kailugaji/articles/11379198.html

    展开全文
  • 基于密度峰值快速搜索发现聚类中心的聚类算法源代码。
  • 密度峰值聚类算法——心得总结

    千次阅读 2018-10-16 16:56:00
    这是离开公司前做的最后一个算法,之前做的一些算法,由于老大的指点,少走了很多弯路,密度峰值聚类这个是纯粹自己做的,走了很多弯路,在这里和大家分享借鉴一下,共勉! 一、简单介绍及原理 顾名思义,这是一...

    这是离开公司前做的最后一个算法,之前做的一些算法,由于老大的指点,少走了很多弯路,密度峰值聚类这个是纯粹自己做的,走了很多弯路,在这里和大家分享借鉴一下,共勉!

     

    一、简单介绍及原理

    顾名思义,这是一种基于密度的聚类算法,以高密度区域作为判断依据,这种非参数的方法,和传统方法比,适用于处理任何形状的数据集,而且无需提前设置簇的数量。

    这里提到一个聚类中心的概念:类簇的中心是由一些局部密度较低的点所围绕,且这些点距离其他高密度的点的距离都比较远,通过计算最近邻的距离,得到聚类中心,并依据密度大小进行排列。

    我在这里借鉴了——马春来,单洪,马涛.一种基于簇中心点自动选择策略的密度峰值聚类算法.计算机科学.2016,43(7)。这个文献中提供了一种自动选择策略的方法,大家有兴趣可以看一下。

    对于一个数据集D={p1,p2,……pn}的点pi,计算每个点的局部密度ρi和相邻密度点的距离di,这里提出一个概念,簇中心权值:γi= ρi * di  。

    通过将簇中心权值降序排列,我们可以通过下降的趋势(斜率)找出拐点所在。

    下图为选择聚类中心的方法

    省略了不少东西,大家可以下载那份文献自己细细研读。

     

    二、一些遇到的问题及我的心得

    1、有现成的代码固然好,但是别人的代码解决的问题终归和你的问题不一样。不如自己从头到尾撸一遍,结合自己的情况进行修改。

    2、传统的密度峰值聚类需要自己设置参数,稍微加以改进可以扔掉参数,让它自己迭代。

    3、为什么要将密度和距离相乘:这样可以避免某一项的值过小,导致特征不明显

    4、注意归一化的问题,具体情况具体对待。(在归一化这个问题坑了我蛮久)

    5、拐点的确定问题,在算法构建的初始阶段,最好人工重复确认一下,避免盲目自信到后面找不到问题所在。

    6、若某两个或多个聚类点距离较近,将其归为一个同一个聚类中心。



     

    转载于:https://www.cnblogs.com/bo-liang/p/9799034.html

    展开全文
  • 密度峰值聚类算法总结及其python实现

    千次阅读 热门讨论 2018-05-09 15:50:44
    密度峰值聚类算法总结及其python实现 先上代码: #-*-coding:utf-8 -*- from __future__ import division import numpy as np from sklearn import preprocessing from scipy.special import comb from sklearn....
  • 针对这一问题,提出了基于密度比例峰值聚类算法即R-CFSFDP。该算法将密度比例引入到CFSFDP中,通过计算样本数据的密度比峰值来提高数据中密度较小类簇的辨识度,进而提升整体聚类的准确率。基于9个常用测试数据集(2...
  • 8 -*-#-*- python3.5import numpyasnpimport matplotlib.pyplotaspltimport sklearn.datasetsasdsimport matplotlib.colorsmin_distance= 4.6# 邻域半径points_number= 40# 随机点个数# 计算各点间距离、各点点密度...
  • 软件工程论文基于深度游走和密度峰值聚类算法的CT图像分割方法软件工程研究 通过查阅文献我们发现聚类算法中增加拓扑特征的难点在于拓扑特征的表示困难但在一篇社会表征的文章中我们发现其思想与拓扑特征表示相近且...
  • 这是Science上一篇聚类的文章:Clustering by fast search and find of density peaks(CFSFDP)。算法的思想很简单,但之前却没有人想到过。所以,仅仅是做聚类的人,也是有希望登大顶的。为了简化描述,我们称应该归...
  • 2014年6⽉,Alex Rodriguez和Alessandro Laio在Science上发表了⼀篇名《Clustering by fast search and find of density peaks》的文章,提供了⼀种简洁而优美的聚类算法,是⼀种基于密度聚类方法,可以识别各种...
  • 文章先简单介绍密度峰值聚类算法过程,在聚类过程中详细介绍如何使用平均近邻百分比取密度探测范围,以及后面进行对应的离群值探测。 拿一个二维数据举例(上图),对于每一个点,我们计算其到所有其它点的...
  • CFSFDP需人工尝试确定密度阈值dc,且对一个类中存在多密度峰值的数据无法进行准确聚类。为解决该缺点,提出基于近邻距离曲线和类合并优化CFSFDP(简称 NM-CFSFDP)的聚类算法。算法用近邻距离曲线变化情况自动确定...
  • #------------密度峰值聚类------------------# def DPCA(n,distMatrix,rho,blockNum): rhoOrdIndex = np.flipud(np.argsort(rho)) delta = np.zeros(n,dtype=float) leader = np.ones(n,dtype=int) * int(-1) '...
  • A Residual Error-based Density Peak Clustering Algorithm 计算e和δ N为定义的邻域大小(整数),求点Xi的最N近邻数 根据e求NNeigh(与DPC类似,把ρ替换成e) ...e越小,δ越大,则为中心点 ...
  • 本文以iris鸢尾花数据为例,实现各种聚类算法。文章里理论部分很简略,主要是python实践。没想到疫情期间度过了研一下学期,全在上网课,仍然是获益匪浅。正好在上机器学习的课程做了结课报告,感谢华中师大张雄军...
  • 原始dc是数据总量的1%-2%,那么归一化之后该值该如何取</p>
  • Python:密度峰值聚类DPCA,类簇中心点选择

    千次阅读 热门讨论 2019-10-29 16:03:15
    import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from scipy.spatial.distance import pdist,squareform def DPCA(X,distPercent): #----------------计算截断距离 ...
  • print("密度峰值聚类环节出错了:类簇索引不是两个:",set(blockClusterIndex)) for i in range(Length): if blockClusterIndex[i] == 0: leftBlock.append(Block[i]) elif blockClusterIndex[i] == 1: ...
  • print("密度峰值聚类环节出错了:类簇索引不是两个:", set(clusterIndex)) leftBlock = [] rightBlock = [] for i in range(m): if clusterIndex[i] == 0: leftBlock.append(Block[i]) elif clusterIndex[i]...
  • import numpy as np from scipy.spatial.distance import pdist,squareform from collections import OrderedDict X = np.array( [[1, 2], [5, 6], [2, 8], [3, 5], [9, 4], [7, 8], [4, 8], [8, 25], [5, 14]...
  • 基于密度峰值聚类集成

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

密度峰值聚类