CN107392249A - 一种k近邻相似度优化的密度峰聚类方法 - Google Patents
一种k近邻相似度优化的密度峰聚类方法 Download PDFInfo
- Publication number
- CN107392249A CN107392249A CN201710607140.9A CN201710607140A CN107392249A CN 107392249 A CN107392249 A CN 107392249A CN 201710607140 A CN201710607140 A CN 201710607140A CN 107392249 A CN107392249 A CN 107392249A
- Authority
- CN
- China
- Prior art keywords
- point
- array
- density
- nearest neighbor
- similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23211—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with adaptive number of clusters
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种K近邻相似度优化的密度峰聚类方法(Density Peaks clustering Optimized by K Nearest Neighbor’s Similarity,DPCKS),主要解决了密度峰聚类算法(Density Peaks Clustering,DPC)无法处理流形数据聚类的问题。该方法采用新的函数计算点间相似度,然后寻找每个点的K近邻,利用K近邻对每个点分配时进行指向点检测,对于指向错误的点重新寻找它的指向点,最后剩余的点分配到指向点所在族类。本发明方法能够适用于流形数据聚类,具有更高的精度和适用范围,能满足实际工程应用的需求。
Description
技术领域
本发明属于数据挖掘和智能信息处理领域,涉及流形数据聚类处理;具体地说就是一种K近邻相似度优化的密度峰聚类方法,可用于数据挖掘、模式识别和机器学习等领域。
背景技术
聚类是指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。聚类的目的简单来说就是对相似的数据进行分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。聚类在数据挖掘、模式识别、机器学习、信息检索等领域已经得到了广泛研究和应用。聚类是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。从统计学的角度看,聚类是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、动态聚类法、有序样品聚类及模糊聚类等。从机器学习的角度看,簇相当于隐藏模式。聚类是搜索簇的无监督学习过程。聚类与分类不同,无监督学习不依赖预先定义的类或带类标记的训练实例,需要由聚类学习算法自动确定标记,而分类学习的实例或数据对象有类别标记。聚类是观察式学习,而不是示例式的学习;从实际应用的角度看,聚类分析是数据挖掘的主要任务之一。聚类能够作为一个独立的工具获得数据的分布状况,观察每一簇数据的特征,集中对特定的聚簇集合作进一步地分析。聚类分析还可以作为其他算法(如分类、定性归纳算法等)及应用(如图像检索、数据挖掘等)的预处理步骤,具有重要的意义。
2014,Alex Rodriguez等人在《Science》上提出了基于密度的密度峰聚类(Density Peaks Clustering,DPC)算法。DPC算法不需要事先指定族类数目,而是通过决策图,找出聚类中心,再将其他的点进行分配,得到聚类结果。密度峰聚类算法虽然简单高效,但是容易发生点错误分配,造成误差传播,最后得到错误的结果。尤其对于一些复杂的流形聚类,这种缺陷尤为突出。
发明内容
针对上述的问题,本发明提出了K近邻相似度优化的密度峰聚类(Density Peaksclustering Optimized by K Nearest Neighbor’s Similarity,DPCKS)方法,可以解决原密度峰聚类算法无法正确处理流形数据聚类的问题,提高了算法的适用范围,可以满足实际工程应用的需求。
实现本发明的关键技术是:对于每一个样本点,首先通过函数计算它与其他点的相似度,找出其K近邻。然后通过它的K近邻判断其指向点是否正确,对于指向错误的样本点,重新寻找它的指向点。最后,将剩余的点分配给密度比它大的最近点所在族类。
为实现上述目标,具体实现步骤如下:
(1)计算所有点间距离,算出截断距离dc值,利用高斯函数:计算每个数据点的密度,然后利用函数:计算每个点到密度比它大的最近点的距离。其中,dij表示点i和点j的距离。对于全局密度最大的点,令δi=maxjdij。
(2)根据每个点的ρ和δ值画出决策图,找出聚类中心。
(3)根据函数:计算点间相似度,找到每个点的K近邻点。其中X=(x1,…,xd)和Y=(y1,…,yd)是d维空间中的两个向量,mi表示第i维上X和Y的平均值的绝对值。
(4)所有的点按照密度从大到小排序,新建空数组Aq,Bq,并把聚类中心依次放入数组Aq。
(5)按照密度从大到小的顺序,依次取点i,判断点i是否已经分配。如果已经分配,取下一个;如果未分配,则进行下一步。
(6)判断点i是否是密度峰值点。如果不是,取下一个;如果是,判断点i与指向点j是否连通。如果连通,把点i放入数组Aq末尾;如果不连通,则把点i放入数组Bq末尾。
(7)判断数组Bq是否为空,如果为空,则将剩余的点分配,结束;如果不为空,则分别从数组Aq中找出一个点j,从数组Bq中找出一个点h,满足点j与点h距离最近。
(8)判断点h与点j是否连通,如果连通,则点h的指向点为点j,把点h归入点j所在族类,并将点h加入数组Aq末尾,并从数组Bq中删除点h;如果不连通,寻找下一对最近点,判断。重复,直到数组Bq为空或者数组Bq中剩余点都不与数组Aq中的点连通。
(9)判断数组Bq是否为空,如果为空,则将剩余的点分配给指向点,结束;如果不为空,则从数组Bq中找出点t,从数组Aq中找出点j,满足点t与点j距离最近,将点t指向点j,并将点t加入数组Aq末尾,从数组Bq中删除点t,重复,直到数组Bq为空。
(10)将剩余的点分配给指向点,结束。
本发明具有以下优点:
(1)本发明引入函数计算点间相似度,这样两个点间的相似度,不仅依赖于每一维度上的差,而且也依赖于该维上数据本身的大小,更加适用于真实数据。
(2)本发明引入点间连通性,在点分配时判断每个点的指向点是否正确,对于指向错误的样本点,重新寻找它的指向点。这样,在点分配时,不再仅仅只考虑寻找密度比它大的最近点,使原密度峰聚类算法具有更广的适用性。
附图说明
图1是本发明方法的整体流程图;
图2是使用密度峰聚类对Lineblobs数据集错误聚类示意图;
图3是使用本发明方法对Lineblobs数据集进行实验的结果图;
图4是使用原密度峰聚类算法对Lineblobs数据集进行实验的结果图;
图5是使用本发明方法对Circleblock数据集进行实验的结果图;
图6是使用原密度峰聚类算法对Circleblock数据集进行实验的结果图;
图7是使用本发明方法对Flame数据集进行实验的结果图;
图8是使用原密度峰聚类算法对Flame数据集进行实验的结果图;
具体实施方法
一、基础理论介绍
1.密度峰聚类算法
密度峰聚类算法DPC是一种基于密度的聚类算法,能够自动发现族群的数目并进行分配。该算法计算每个点i的局部密度ρi以及到密度比它大的最近点的距离δi。其中局部密度ρi定义如下:
其中,dij为样本点i,j间的欧氏距离,dc为截断距离,通常把所有点间的距离从小到大排序后,取2%~5%小的距离。
δi为样本点i到具有更高局部密度的点j的最短距离,其计算方式为
对于全局密度最大的点,令δi=maxjdij。
由ρi的计算可知,样本的局部密度受截断距离dc影响。当数据集规模较大时,DPC算法的聚类结果受截断距离的影响较小,反之则较大。为了避免截断距离对样本局部密度乃至聚类结果的影响,DPC算法通常采用指数核计算样本密度,如下所示:
DPC算法通过构造样本距离δ对于样本密度ρ的决策图,选取样本中δ,ρ都较大的点作为聚类中心。对剩余的样本点,按照密度从大到小的顺序,依次把它们分配给密度比它大的最近点所在族类。
虽然DPC算法的简单快速,但是该算法仍存在如下不足:在分配过程中仅考虑样本点与指向点间的距离,容易发生错误分配。图2展示了在截断距离dc=2%下,DPC算法错误分配的情况。由于只考虑样本点与指向点间的距离,导致样本点1错误地指向了样本点2,进而引起了误差传播,最终得到错误的结果。样本点3同理。
可见,在考虑样本点分配时,不仅仅要考虑样本点与指向点的距离,更需要判断指向是否正确。对于指向错误的点,需要重新寻找它的指向点。
二、本发明K近邻相似度优化的密度峰聚类方法
参照图1.本发明的具体实施步骤包括如下。
步骤1.计算所有点间距离。对于欧式距离矩阵上三角n(n-1)/2个距离进行快速排序,算出dc的值。
步骤2.根据高斯函数:计算每个点的密度;根据函数: 计算每个点到密度比它大的最近点的距离。其中,dij表示点i和点j的距离。对于全局密度最大的点,令δi=maxjdij。
步骤3.构造样本距离δ对于样本密度ρ的决策图,选取样本中δ,ρ都较大的点作为聚类中心。
步骤4.每个点寻找正确的指向点。本算法通过相似度函数计算所有点间相似度,找出每个点的K近邻,通过K近邻判断寻找每个点正确的指向点。具体过程如下:
(4.1)通过函数:计算点间相似度,找出每个点的K近邻。其中X=(x1,…,xd)和Y=(y1,…,yd)是d维空间中的两个向量,mi表示第i维上X和Y的平均值的绝对值。这样两个点间的相似度,不仅依赖于每一维度上的差,而且也依赖于该维上数据本身的大小。
(4.2)所有的点按照密度从大到小排序,新建空数组Aq,Bq,并把聚类中心依次放入数组Aq。按照密度从大到小的顺序,依次取点i,判断点i是否已经分配。如果已经分配,取下一个;如果未分配,则进行下一步。
(4.3)判断点i是否是密度峰值点。如果不是,取下一个;如果是,判断点i与指向点j是否连通。如果连通,把点i放入数组Aq末尾;如果不连通,则把点i放入数组Bq末尾。
密度峰值点:根据决策图,选出聚类中心,剩余的点如果不在其指向点的K近邻内,那么它就是密度峰值点。根据DPC算法定义,聚类中心到密度比它大的最近点距离较远,所以聚类中心也作为密度峰值点。
点的连通性:如果一个点i(样本点)在点j(指向点)的K近邻内,则点i与点j连通。否则,从点j的K近邻内寻找与点i相似度最大的点jn(第n次找到的点),判断点i与点jn相似度是否大于点i与点jn-1(第n-1找到的点,j0=j):如果点i与点jn的相似度大于点i与点jn-1,并且i点在点jn的K近邻内,则点i与点j连通;如果点i与点jn的相似度大于点i与点jn-1,但是i点不在点jn的K近邻内,则从点jn的K近邻内继续寻找与点i相似度最大的点jn+1,重复上面的判断;如果点i与点jn的相似度小于等于点i与点jn-1,则点i与点j不连通。
(4.4)判断数组Bq是否为空,如果为空,则将剩余的点分配,结束;如果不为空,则分别从数组Aq中找出一个点j,从数组Bq中找出一个点h,满足点j与点h距离最近。
(4.5)判断点h与点j是否连通,如果连通,则点h的指向点为点j,把点h归入点j所在族类,并将点h加入数组Aq末尾,并从数组Bq中删除点h;如果不连通,寻找下一对最近点,判断。重复,直到数组Bq为空或者数组Bq中剩余点都不与数组Aq中的点连通。
(4.6)判断数组Bq是否为空,如果为空,则将剩余的点分配给指向点,结束;如果不为空,则从数组Bq中找出点t,从数组Aq中找出点j,满足点t与点j距离最近,将点t指向点j,并将点t加入数组Aq末尾,从数组Bq中删除点t,重复,直到数组Bq为空。
步骤5.剩下的点依次分配到密度比它大的最近点,结束。
本发明的效果可通过以下仿真实验进一步说明。
1.仿真条件
为了验证本发明方法的性能,分别在人工数据集和UCI真实数据集上进行实验,实验所用数据集信息分别如表1和表2所示。仿真实验在同一PC机(Windows7 64位操作系统、Intel Core i5 2.5GHz CPU、6G内存)、MATLAB R2015a上编程及运行。
表1人工数据集
表2 UCI真实数据集
2.仿真内容
实验1本发明方法与DPC算法在人工数据集上的对比实验
针对Lineblobs、Circleblock和Flame数据集,密度峰聚类算法和本发明方法截断距离dc的值相同,都取2%。在本发明方法中,k=8。
图3、图5、图7是使用本发明方法对Lineblobs、Circleblock和Flame三个数据集进行实验的结果图,图4、图6、图8是使用密度峰聚类算法对上述三个数据集进行实验的结果图。从这些图的结果对比可以看出,仅考虑点间距离,密度峰聚类算法无法得到正确的结果。而K近邻相似度优化的密度峰聚类方法,在点分配时判断寻找正确的指向点,可以得到正确的结果。
实验2本发明方法与DPC以及其他改进算法在UCI真实数据集上的对比实验
为了进一步验证本发明方法的性能,使用表2中的UCI数据集进行实验。对比算法中KNNDPC、CFSFDP和FuzzyDPC都是DPC最新的优化算法。实验采用了F-measure、ARI(Adjusted Randed Index)和AMI(Adjusted Mutual Information)三个指标评价聚类效果。上述三种指标的取值上界都是1,值越大表示聚类效果越好。
表3 Iris数据集算法结果及参数
表4 Ecoli数据集算法结果及参数
表5 Tae数据集算法结果及参数
表6 Glass数据集算法结果及参数
在最佳的输入参数值下,本发明方法与DPC,以及其他改进算法在表2中的数据集上聚类所得指标值分别见表3、表4、表5和表6。这些表中“—”表示算法难以得到结果,加重加粗的数据表示相比最优的结果。
从表3、表4、表5和表6可以看出,本发明方法相对于DPC算法具有更优的结果,并且相对于其他改进算法,在大部分数据集上也有更优的结果。其中,本发明方法在表4的Ecoli数据集和表5的Tae数据集上都得到了最优的结果;在表3的Iris数据集和表6的Class数据集上也能得到部分最优结果。特别地,对于Iris数据集,本发明方法与KNNDPC算法都只错分了4个样本点,取得了非常优的指标值。由于错分的4个样本点不一样,所以两个算法的AMI指标值略有差异。
从上述实验结果可以明显看出,与DPC算法和其它一些新近的DPC改进算法相比,本发明方法可以更好地处理流形聚类目标,具有更好的实际工程应用价值。
Claims (2)
1.K近邻相似度优化的密度峰聚类方法,包括:
(1)计算所有点间距离,算出截断距离dc值,利用高斯函数:计算每个数据点的密度,然后利用函数:计算每个点到密度比它大的最近点的距离δ。其中,dij表示点i和点j的距离。对于全局密度最大的点,令δi=maxjdij。
(2)根据每个点的ρ和δ值画出决策图,找出聚类中心。
(3)根据函数:计算点间相似度,找到每个点的K近邻点。其中X=(x1,…,xd)和Y=(y1,…,yd)是d维空间中的两个向量,mi表示第i维上X和Y的平均值的绝对值。
(4)所有的点按照密度从大到小排序,新建空数组Aq,Bq,并把聚类中心依次放入数组Aq。
(5)按照密度从大到小的顺序,依次取点i,判断点i是否已经分配。如果已经分配,取下一个;如果未分配,则进行下一步。
(6)判断点i是否是密度峰值点。如果不是,取下一个;如果是,判断点i与指向点j是否连通。如果连通,把点i放入数组Aq末尾;如果不连通,则把点i放入数组Bq末尾。
(7)判断数组Bq是否为空,如果为空,则将剩余的点分配,结束;如果不为空,则分别从数组Aq中找出一个点j,从数组Bq中找出一个点h,满足点j与点h距离最近。
(8)判断点h与点j是否连通,如果连通,则点h的指向点为点j,把点h归入点j所在族类,并将点h加入数组Aq末尾,并从数组Bq中删除点h;如果不连通,寻找下一对最近点,判断。重复,直到数组Bq为空或者数组Bq中剩余点都不与数组Aq中的点连通。
(9)判断数组Bq是否为空,如果为空,则将剩余的点分配给指向点,结束;如果不为空,则从数组Bq中找出点t,从数组Aq中找出点j,满足点t与点j距离最近,将点t指向点j,并将点t加入数组Aq末尾,从数组Bq中删除点t,重复,直到数组Bq为空。
(10)将剩余的点分配给指向点,结束。
2.根据权利要求书1所述的K近邻相似度优化的密度峰聚类,其中,步骤(6)所述的判断点i是否为密度峰值点以及点i和点j是否连通,按照如下方法:
(2.1)根据决策图,选出聚类中心,剩余的点如果不在其指向点的K近邻内,那么它就是密度峰值点。根据DPC算法定义,聚类中心到密度比它大的最近点距离较远,所以聚类中心也作为密度峰值点。
(2.2)如果一个点i(样本点)在点j(指向点)的K近邻内,则点i与点j连通。否则,从点j的K近邻内寻找与点i相似度最大的点jn(第n次找到的点),判断点i与点jn相似度是否大于点i与点jn-1(第n-1找到的点,j0=j):如果点i与点jn的相似度大于点i与点jn-1,并且i点在点jn的K近邻内,则点i与点j连通;如果点i与点jn的相似度大于点i与点jn-1,但是i点不在点jn的K近邻内,则从点jn的K近邻内继续寻找与点i相似度最大的点jn+1,重复上面的判断;如果点i与点jn的相似度小于等于点i与点jn-1,则点i与点j不连通。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607140.9A CN107392249A (zh) | 2017-07-24 | 2017-07-24 | 一种k近邻相似度优化的密度峰聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607140.9A CN107392249A (zh) | 2017-07-24 | 2017-07-24 | 一种k近邻相似度优化的密度峰聚类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107392249A true CN107392249A (zh) | 2017-11-24 |
Family
ID=60336610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710607140.9A Withdrawn CN107392249A (zh) | 2017-07-24 | 2017-07-24 | 一种k近邻相似度优化的密度峰聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107392249A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596737A (zh) * | 2018-05-07 | 2018-09-28 | 山东师范大学 | 基于电子商务评论数据的非聚类中心节点分配方法及装置 |
CN108647297A (zh) * | 2018-05-08 | 2018-10-12 | 山东师范大学 | 一种共享近邻优化的密度峰值聚类中心选取方法和系统 |
CN108897847A (zh) * | 2018-06-28 | 2018-11-27 | 中国人民解放军国防科技大学 | 基于局部敏感哈希的多gpu密度峰值聚类方法 |
CN109916627A (zh) * | 2019-03-27 | 2019-06-21 | 西南石油大学 | 基于主动学习的轴承故障检测与诊断 |
-
2017
- 2017-07-24 CN CN201710607140.9A patent/CN107392249A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596737A (zh) * | 2018-05-07 | 2018-09-28 | 山东师范大学 | 基于电子商务评论数据的非聚类中心节点分配方法及装置 |
CN108647297A (zh) * | 2018-05-08 | 2018-10-12 | 山东师范大学 | 一种共享近邻优化的密度峰值聚类中心选取方法和系统 |
CN108647297B (zh) * | 2018-05-08 | 2020-11-20 | 山东师范大学 | 一种共享近邻优化的密度峰值聚类中心选取方法和系统 |
CN108897847A (zh) * | 2018-06-28 | 2018-11-27 | 中国人民解放军国防科技大学 | 基于局部敏感哈希的多gpu密度峰值聚类方法 |
CN108897847B (zh) * | 2018-06-28 | 2021-05-14 | 中国人民解放军国防科技大学 | 基于局部敏感哈希的多gpu密度峰值聚类方法 |
CN109916627A (zh) * | 2019-03-27 | 2019-06-21 | 西南石油大学 | 基于主动学习的轴承故障检测与诊断 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chacón | A population background for nonparametric density-based clustering | |
CN104966104B (zh) | 一种基于三维卷积神经网络的视频分类方法 | |
CN103559504B (zh) | 图像目标类别识别方法及装置 | |
Argyriou et al. | An algorithm for transfer learning in a heterogeneous environment | |
CN107392249A (zh) | 一种k近邻相似度优化的密度峰聚类方法 | |
CN107220277A (zh) | 基于手绘草图的图像检索算法 | |
CN108229588B (zh) | 一种基于深度学习的机器学习识别方法 | |
Beikmohammadi et al. | SWP-LeafNET: A novel multistage approach for plant leaf identification based on deep CNN | |
CN110059807A (zh) | 图像处理方法、装置和存储介质 | |
CN105825078B (zh) | 基于基因大数据的小样本基因表达数据分类方法 | |
CN110781295B (zh) | 一种多标记数据的特征选择方法及装置 | |
CN106845536B (zh) | 一种基于图像缩放的并行聚类方法 | |
CN106228554A (zh) | 基于多属性约简的模糊粗糙集煤粉尘图像分割方法 | |
CN102254033A (zh) | 基于熵权重的全局k-均值聚类方法 | |
Shi et al. | An improved mean imputation clustering algorithm for incomplete data | |
Tang et al. | A phylogenetic scan test on a Dirichlet-tree multinomial model for microbiome data | |
CN112434628A (zh) | 基于主动学习和协同表示的小样本极化sar图像分类方法 | |
CN106228027A (zh) | 一种多视角数据的半监督特征选择方法 | |
CN109376790A (zh) | 一种基于渗流分析的二元分类方法 | |
CN107451617A (zh) | 一种图转导半监督分类方法 | |
CN107436933A (zh) | 用于病历档案整理的层次聚类系统 | |
CN108229692B (zh) | 一种基于双重对比学习的机器学习识别方法 | |
CN113420820A (zh) | 一种基于正则化最优传输理论的不平衡数据分类方法 | |
Pereira et al. | Assessing active learning strategies to improve the quality control of the soybean seed vigor | |
CN110502669A (zh) | 基于n边dfs子图的轻量级无监督图表示学习方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20171124 |
|
WW01 | Invention patent application withdrawn after publication |