掌桥专利:专业的专利平台
掌桥专利
首页

基于静电力的密度峰聚类算法

文献发布时间:2023-06-19 16:04:54



技术领域

本发明属于聚类分析技术领域,只要是为密度峰聚类算法进行改进优化。具体是一种基于加权共享最近邻的自适应聚类中心密度峰值聚类算法,可应用于图像处理、医学诊断、数据挖掘等领域。

背景技术

自从2012年以来,“大数据”这一次被多次提及,因为随着互联网的发展,使数据和人类的生活越来越密不可分。各行各业的数据资源都开始了量化的过程,大数据作为这个高科技时代的产物,极大地方便了人类的工作和生活。数据挖掘领域作为大数据的一个重要分支,是指在海量的数据中,通过算法搜索出其中有用的信息的过程。聚类分析,在数据挖掘领域起着不可替代的作用。聚类旨在没有标签的数据中,通过算法找出数据间的相似性并进行归类,是无监督学习的一种。

在进入大数据时代,聚类发展的尤为迅猛,这一领域的研究人员提出了大量的聚类算法。例如 DBSCAN算法、AP算法、k-means算法等。Rodriguez等人于2014年在Science上提出了一种新的基于密度的聚类算法——快速搜索和寻找密度峰值聚类算法(clusteringby fast search and find of density peaks, DPC)这就是著名的DPC算法。DPC算法相比较于其他算法,首先,它具有较高的分类效率且原理简单;其次,解决了k-means的只能处理凸形簇的缺点;最后,DPC算法仅需要较少的参数且不需要迭代,这样就极大的减少了时间消耗。但是该算法比较依赖于截断距离(参数)的选择,要根据认为经验来确定参数的大小,且参数选择不合适会对聚类结果产生较大的影响。DPC也对流型的数据集的聚类效果不是很有效。

基于层次的聚类算法。AGNES算法一种从底向上聚合聚类的一种算法,先将数据集中每一个样本都看成一个初试聚类,然后在运行中每一部找出两个距离最近的聚类簇进行合并,一直进行迭代,直到到达预设的聚类个数。AGNES算法实现较为简单,但是已经合并的簇不能被取消,所以再进行添加样本,会对结果的影响比较大。基于划分的聚类算法,例如最经典的聚类算法k-means算法,是一种基于欧氏距离的聚类算法,计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心,并且每一次要更新聚类中心,直到收敛。这种算法的优点是实现容易、原理简单。但是这类的算法只能处理凸形簇。同样是基于密度的聚类算法DBSCAN,这种算法提出了密度可达、密度直达等一系列的概念,可以对任意形状的数据进行分类。

自DPC算法提出至今,有很多的学者在DPC算法的基础上进行创新,也提出了很多解决DPC算法缺陷的算法。例如,LI等提出的一种针对传统密度峰值聚类算法无法适应数据库中数据量动态增长的知识发现问题,提出一种改进的进化密度峰值聚类算法(EDPC)。TONG提出的一种新的基于密度的聚类算法,新的不依赖截止距离的非中心节点分配策略和一种识别噪声节点的方法的NN-DPC算法。QIU提出了一种基于人工蜂群优化的密度峰值算法,改进后的DPC算法可以更好地实现簇间数据点的自动识别和合理聚类,降低原始密度峰值聚类(DPC)取值难度。

密度峰值聚类的核心思想包括:聚类中心的密度要比周围邻居的密度大且聚类中心之间的距离较远。通过定义局部密度和相对距离来画出聚类中心的决策图,选取局部密度大且相对距离大的点作为聚类中心。因此在数据集中的每个点都要计算该点的局部密度值和相对距离。下面对局部密度ρ

假设数据集A={xi|i=1,2,3……,n},n代表数据集的A的大小。

局部密度也就是该数据点的密度值,下面给出截断核的定义:

ρ

其中当χ(x)<0时,χ(x)=1;当χ(x)>0时,χ(x)=0,其中dc>0,dc为截断距离。

高斯核计算方式如下所示:

其中截断核的定义是在截断距离内所有数据点的和,高斯核的定义是所有数据点到该数据点的高斯距离。

根据局部密度ρ

γ

根据局部密度和相对距离绘制出决策图可以发现,聚类中心点和普通点完全分开,选取局部密度大且相对距离也大的点作为聚类中心,局部密度小但是相对距离大的为离群点。并将所有点分配到距离最近的聚类中心所在的类簇中。

静电力表示带电物体的相互吸引或排斥的能力,两电荷之间的力公式如下:

其中k为静电力常量,其值通常为k=9.0×109N·m2/C2。q1,q2分别代表两个电荷所带的电荷量,q1q2可以理解为两个电荷之间的吸引或排斥的能力,r为两电荷之间的距离。

发明内容

电荷之间的吸引或排斥程度,和数据之间的相似程度具有着异曲同工之妙,所以可以将所有的数据点都看成是带点的粒子。粒子之间存在“引力”和“斥力”,这里的“引力”和“斥力”加和的绝对值代表数据点之间的相似度,根据静电力公式引出数据之间的“引力”公式如下:

其中k为静电力常量,F为数据点之间的相似程度,r代表两个数据点之间的欧式距离,其中

对上述的“引力”和“斥力”进行解释,实际上并不是说二者显示简单的吸引和排斥的作用。首先,二者并不是一个矢量,二者是没有方向的仅仅代表计算相似度的一种数值;其次,“斥力”这一概念是用来检测簇边缘数据点的准确性而定义的,所以要取二者和的绝对值才能表示真正的相似程度。

本算法在聚类中心的选取方面,对每一个数据点在截断距离内,用提出的“引力”公式,来代替截断核公式,计算出数据点中每一个点的所受的“引力”和的大小,这一数值就是该数据点的局部密度。

定义1(局部密度)为了更好的找到聚类中心,这里重新定义了局部密度的计算公式,假设数据集A={xi|i=1,2,3……,n},n代表数据集的A的大小。结合上述的“引力公式”,给出重新定义的局部密度:

用这种方式计算出来的局部密度考虑到了数据点之间的相似程度,而不是简单的用截断范围内的数据点的个数,会使聚类中心的选取更加准确。

数据集中xi到xj的相对距离δ

d

其中,dij表示数据点xi与xj的欧式距离,相对距离是指xi对密度高于它且距离最近的数据点之间的距离,当xi就是截断距离内密度的最大值的时候,dij的最大值作为它的相对距离。

通过上述可以得到一个由公式确定的局部密度和相对距离。在计算完数据集中的局部密度ρ

在聚类中心选取完毕,就进入了其余点的分配阶段,把其余点分配到它的最近邻且密度比其大的数据点所在的簇中去。

任何一个聚类算法都不能保证对数据点分配是准确无误的,所以在这里我们引入一种检验方法,也就是上文我们提出的“引力”“斥力”进行检验。下面我们提出“斥力公式”:

该公式和“引力”公式就差了一个倒数的关系,这样就导致了,当数据点之间的相似度低时,导致

定义2(相似度)对于任意A={xi|i=1,2,3……,n},其中xo为聚类中心,我们规定聚类中心点只能读其余点施加“引力”作用,非聚类中心点只能对非聚类中心点施加“斥力”作用,且计算“引力”和“斥力”只能来自同一簇,将计算所得的“引力”和“斥力”做差再取绝对值即为,该簇对某一数据点的相似度,定义如下:

其中,点o为聚类中心点只能提供“引力”作用,继续计算出其他点(不包括数据点本身和聚类中心点)对该点的平均“斥力”,然后根据公式进行做差再取绝对值,得出的结果就为该簇对该数据点的相似度。相似度越高则说明该数据点属于该簇的几率越大,相似度越小则说明该数据节点属于该簇的几率越小。

根据上述相似度公式计算出,边缘数据点对每一个簇的相似度,若自己现在所在簇的相似度即为最高那么就不需要更改,若其他簇的相似度比自己目前所在簇的相似度要高则将其划分到相似度较大的那一簇中。

根据此方法将边缘数据点进行检验,解决了一些算法的划分错误问题,使算法更加准确。

附图说明

图1为基于加权共享最近邻的自适应密度峰值聚类算法的流程图。

具体实施方式

定义1(局部密度)为了更好的找到聚类中心,这里重新定义了局部密度的计算公式,假设数据集A={xi|i=1,2,3……,n},n代表数据集的A的大小。结合上述的“引力公式”,给出重新定义的局部密度:

用这种方式计算出来的局部密度考虑到了数据点之间的相似程度,而不是简单的用截断范围内的数据点的个数,会使聚类中心的选取更加准确。

数据集中xi到xj的相对距离δ

d

其中,dij表示数据点xi与xj的欧式距离,相对距离是指xi对密度高于它且距离最近的数据点之间的距离,当xi就是截断距离内密度的最大值的时候,dij的最大值作为它的相对距离。

通过上述可以得到一个由公式确定的局部密度和相对距离。根据这两个值画出决策图,选出局部密度大且相对距离大的点作为聚类中心。

任何一个聚类算法都不能保证对数据点分配是准确无误的,所以在这里我们引入一种检验方法,也就是上文我们提出的“引力”“斥力”进行检验。下面我们提出“斥力公式”:

该公式和“引力”公式就差了一个倒数的关系,这样就导致了,当数据点之间的相似度低时,导致

定义2(相似度)对于任意A={xi|i=1,2,3……,n},其中xo为聚类中心,我们规定聚类中心点只能读其余点施加“引力”作用,非聚类中心点只能对非聚类中心点施加“斥力”作用,且计算“引力”和“斥力”只能来自同一簇,将计算所得的“引力”和“斥力”做差再取绝对值即为,该簇对某一数据点的相似度,定义如下:

其中,点o为聚类中心点只能提供“引力”作用,继续计算出其他点(不包括数据点本身和聚类中心点)对该点的平均“斥力”,然后根据公式进行做差再取绝对值,得出的结果就为该簇对该数据点的相似度。相似度越高则说明该数据点属于该簇的几率越大,相似度越小则说明该数据节点属于该簇的几率越小。

算法步骤1.计算任意两数据点之间的距离

算法步骤2.根据新局部密度计算公式算出在截断距离内任意点的局部密度ρ

算法步骤3.计算任意点的相对距离δ

算法步骤4.以ρ

算法步骤5.将剩余点进行分配。分配时,将每个剩余点分配到他的最近邻且密度比其大的数据点所在的簇

算法步骤6.根据上述的相似度计算公式,检验簇边缘数据点和每个簇的相似度

步骤7.将其分配到最大相似度所在的簇。

相关技术
  • 基于静电力的密度峰聚类算法
  • 一种基于密度自适应距离的密度峰聚类算法
技术分类

06120114693105