一种基于密度峰值的大数据挖掘方法及装置与流程

文档序号:11155625阅读:363来源:国知局
一种基于密度峰值的大数据挖掘方法及装置与制造工艺

本发明涉及数据挖掘领域,尤其涉及一种基于密度峰值的大数据挖掘方法及装置。



背景技术:

聚类是将样本空间的所有对象划分成若干组,使得同一个组内的对象具有很高的相似性,而不同组间的对象具有很大的差异性。其中,模糊C-均值聚类作为模糊聚类的典型代表,具有广泛的应用。然而,模糊C-均值聚类算法存在一些缺点,主要表现在对初始聚类中心敏感,容易收敛于局部最优,收敛速度慢等。

密度峰值算法(Clustering by fast search and find of density peaks,CFSFDP)是一种基于密度聚类的启发式算法。密度峰值聚类基于这样的一种假设:对于一个数据集,聚类中心被一些低局部密度的数据点包围,而且这些低局部密度的点距离其他有高局部密度的点的距离都比较大。在这样的模型中,密度峰值算法主要有两个需要计算的量:第一,局部密度;第二,与高密度点之间的距离。密度峰值算法具有能够快速并准确地确定聚类中心,收敛速度快、容易收敛于全局最优、鲁棒性强等优点。

因此,提出一种基于密度峰值算法改进的模糊C-均值聚类算法是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明实施例提供了一种基于密度峰值的大数据挖掘方法及装置,无需指定聚类数目且加快了收敛速度。

本发明实施例提供了一种基于密度峰值的大数据挖掘方法,包括:

S1:获取到数据集,并计算所述数据集的每两个数据之间的欧氏距离,得到距离矩阵;

S2:获取到预置截断距离,并通过第一预置公式对所述距离矩阵和所述截断距离进行计算,得到所述数据集的各个数据的局部密度,并根据所述各个数据的局部密度确定各个数据的高密度距离;

S3:构造以局部密度为横轴、高密度距离为纵轴的决策图,根据所述各个数据的局部密度和所述各个数据的高密度距离在所述决策图上选取聚类中心;

S4:通过第二预置公式对所述聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据所述隶属度矩阵和所述距离矩阵构造目标函数,并将预置迭代次数的值增加一;

S5:若所述目标函数小于预置容许误差或所述预置迭代次数不小于预置最大迭代次数,则结束,若所述目标函数不小于预置容许误差或所述预置迭代次数小于预置最大迭代次数,则执行S3。

优选地,所述根据所述各个数据的局部密度确定各个数据的高密度距离具体为:

通过第三预置公式并根据所述各个数据的局部密度对所述距离矩阵进行选取得到各个数据的高密度距离,并通过预置第四公式对局部密度最大的数据进行计算得到所述局部密度最大的数据的高密度距离。

优选地,所述第一预置公式为:

其中,当dij-dc<0时,χ(dij-dc)=1,否则χ(dij-dc)=0;dc是一个截断距离;dij为第i个数据到第j个数据的欧式距离。

优选地,所述预置第二公式为:

其中,τ为预置密度加权系数;λ为预置振荡因子;mò(1,∞)为模糊系数;ck为第k个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据。

优选地,所述预置密度加权系数的值通过以下预置公式确认:

其中,ρi为第i个数据的局部密度;cj为第j个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据;d为数据集的每两个数据之间的欧氏距离。

优选地,所述第三预置公式为:

其中,δi为第i个数据是任意比第i个数据密度大的数据的距离的最小值;dij为第i个数据到第j个数据的欧式距离。

优选地,所述第四预置公式为:

δi=maxj∈dataset(dij)。

优选地,所述目标函数为:

其中,mò(1,∞)为模糊系数;uij为第i个数据对第j个数据簇的隶属度;cj为第j个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据。

优选地,本发明实施例还提供了一种基于密度峰值的大数据挖掘装置,包括:

第一计算单元,用于获取到数据集,并计算所述数据集的每两个数据之间的欧氏距离,得到距离矩阵;

第二计算单元,获取到预置截断距离,并通过第一预置公式对所述距离矩阵和所述截断距离进行计算,得到所述数据集的各个数据的局部密度,并根据所述各个数据的局部密度确定各个数据的高密度距离;

选取单元,用于构造以局部密度为横轴、高密度距离为纵轴的决策图,根据所述各个数据的局部密度和所述各个数据的高密度距离在所述决策图上选取聚类中心;

第三计算单元,用于通过第二预置公式对所述聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据所述隶属度矩阵和所述距离矩阵构造目标函数,并将预置迭代次数的值增加一;

判断单元,用于若所述目标函数小于预置容许误差或所述预置迭代次数不小于预置最大迭代次数,则结束,若所述目标函数不小于预置容许误差或所述预置迭代次数小于预置最大迭代次数,则触发选取单元。

优选地,所述第二计算单元包括:

第一计算子单元,用于通过第三预置公式并根据所述各个数据的局部密度对所述距离矩阵进行选取得到各个数据的高密度距离;

第二计算子单元,用于通过预置第四公式对局部密度最大的数据进行计算得到所述局部密度最大的数据的高密度距离。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例提供了一种基于密度峰值的大数据挖掘方法及装置,其中,该基于密度峰值的大数据挖掘方法包括:S1:获取到数据集,并计算所述数据集的每两个数据之间的欧氏距离,得到距离矩阵;S2:获取到预置截断距离,并通过第一预置公式对所述距离矩阵和所述截断距离进行计算,得到所述数据集的各个数据的局部密度,并根据所述各个数据的局部密度确定各个数据的高密度距离;S3:构造以局部密度为横轴、高密度距离为纵轴的决策图,根据所述各个数据的局部密度和所述各个数据的高密度距离在所述决策图上选取聚类中心;S4:通过第二预置公式对所述聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据所述隶属度矩阵和所述距离矩阵构造目标函数,并将预置迭代次数的值增加一;S5:若所述目标函数小于预置容许误差或所述预置迭代次数不小于预置最大迭代次数,则结束,若所述目标函数不小于预置容许误差或所述预置迭代次数小于预置最大迭代次数,则执行S3。本发明实施例包括:第一阶段:使用密度峰值聚类算法选定初始聚类中心;第二阶段,确定初始聚类数目以及对传统模糊C-均值算法的加速收敛。在第一阶段算法中,通过使用密度峰值聚类中提供决策图,选定初始聚类中心,选择完成后,初始聚类中心数目即为聚类中心数,无需人工指定聚类数目。在第二阶段算法中,对传统模糊C-均值算法的迭代过程进行优化,考虑局部密度对算法的影响,加入密度加权因子,使算法能够加速获取全局最优解,且加入振荡因子,使得算法能够加快收敛。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种基于密度峰值的大数据挖掘方法的流程示意图;

图2为本发明实施例提供的一种基于密度峰值的大数据挖掘方法的另一流程示意图;

图3为本发明实施例提供的一种基于密度峰值的大数据挖掘装置的结构示意图;

图4为决策图示意图;

图5为本发明实施例提供的一种基于密度峰值的大数据挖掘方法的算法流程示意图。

具体实施方式

本发明实施例提供了一种基于密度峰值的大数据挖掘方法及装置,无需指定聚类数目且加快了收敛速度。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供的一种基于密度峰值的大数据挖掘方法的一个实施例,包括:

101、获取到数据集,并计算数据集的每两个数据之间的欧氏距离,得到距离矩阵;

102、获取到预置截断距离,并通过第一预置公式对距离矩阵和截断距离进行计算,得到数据集的各个数据的局部密度,并根据各个数据的局部密度确定各个数据的高密度距离;

103、构造以局部密度为横轴、高密度距离为纵轴的决策图,根据各个数据的局部密度和各个数据的高密度距离在决策图上选取聚类中心;

104、通过第二预置公式对聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据隶属度矩阵和距离矩阵构造目标函数,并将预置迭代次数的值增加一;

105、若目标函数小于预置容许误差或预置迭代次数不小于预置最大迭代次数,则结束,若目标函数不小于预置容许误差或预置迭代次数小于预置最大迭代次数,则执行103。

请参阅图2,本发明实施例提供的一种基于密度峰值的大数据挖掘方法的另一个实施例,包括:

201、获取到数据集,并计算数据集的每两个数据之间的欧氏距离,得到距离矩阵;

202、获取到预置截断距离,并通过第一预置公式对距离矩阵和截断距离进行计算,得到数据集的各个数据的局部密度,通过第三预置公式并根据各个数据的局部密度对距离矩阵进行选取得到各个数据的高密度距离,并通过预置第四公式对局部密度最大的数据进行计算得到局部密度最大的数据的高密度距离;

203、构造以局部密度为横轴、高密度距离为纵轴的决策图,根据各个数据的局部密度和各个数据的高密度距离在决策图上选取聚类中心;

204、通过第二预置公式对聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据隶属度矩阵和距离矩阵构造目标函数,并将预置迭代次数的值增加一;

205、若目标函数小于预置容许误差或预置迭代次数不小于预置最大迭代次数,则结束,若目标函数不小于预置容许误差或预置迭代次数小于预置最大迭代次数,则执行203。

进一步地,第一预置公式为:

其中,当dij-dc<0时,χ(dij-dc)=1,否则χ(dij-dc)=0;dc是一个截断距离;dij为第i个数据到第j个数据的欧式距离。

进一步地,预置第二公式为:

其中,τ为预置密度加权系数;λ为预置振荡因子;mò(1,∞)为模糊系数;ck为第k个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据。

进一步地,预置密度加权系数的值通过以下预置公式确认:

其中,ρi为第i个数据的局部密度;cj为第j个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据;d为数据集的每两个数据之间的欧氏距离。

进一步地,第三预置公式为:

其中,δi为第i个数据是任意比第i个数据密度大的数据的距离的最小值;dij为第i个数据到第j个数据的欧式距离。

进一步地,第四预置公式为:

δi=maxj∈dataset(dij)。

进一步地,目标函数为:

其中,mò(1,∞)为模糊系数;uij为第i个数据对第j个数据簇的隶属度;cj为第j个聚类中心;||xi-cj||表示xi到cj的欧式距离;xi表示第i个数据。

上面是对一种基于密度峰值的大数据挖掘方法进行的详细说明,为便于理解,下面将以一具体应用场景对一种基于密度峰值的大数据挖掘方法的应用进行说明,应用例包括:

给定数据集X={x1,x2,...,xn},X中有n个对象,其中每个对象有d个维度.聚类就是将数据集中的n个数据划分成c个簇,得到的结果为聚类中心集为C={C1,...,Cc}.与传统聚类不同,模糊聚类在划分时,每个对象不是被严格地划分到每个聚类中,而是用对象与类的隶属度来描述,隶属度公式如公式(2)所示,隶属度矩阵如下:

U={uij},i=1,...,n,j=1,....,c (1)

其中uij表示第i个数据对第j个数据簇的隶属度,其实际值可用下面公式求得:

其中,mò(1,∞)为模糊系数,ck为第k个聚类中心点,||xi-cj||表示xi到cj的距离,这里一般用欧式距离进行计算。

而聚类结果的优劣,使用目标函数进行评价,模糊C均值聚类的目标函数J是:

目标函数表示各类数据到相应聚类中心的加权距离平方和。

如图5所示,本发明提供的方法包含两个阶段:

1.第一阶段:使用密度峰值聚类获取聚类数目与初始聚类中心

1.1.初始化,算法执行前,初始化参数,初始化模糊系数m,容许误差ε。最大迭代次数。

1.2.计算出各数据点之间的距离矩阵D={dij},i,j=1,...,n。计算各个数据点之间的距离,一般参与欧式距离进行计算。

1.3.初始化截断距离dc,其中截断距离是为了计算后面的局部密度而提供的参考量。下面会进行说明。

1.4.分别用公式(4)与(6)求出每个数据点i的局部密度ρi与高密度距离δi

其中,数据点i的局部密度ρi定义如下:

其中,当x<0时,χ(x)=1。否则χ(x)=0,dc是一个截断距离。对于大量数据而言,局部密度实质为数据点之间的相对密度,因此dc的选择对算法是鲁棒(robust)的。

数据点i的δi是点到任何比其密度大的点的距离的最小值,定义如下:

对于局部密度最大的点,需要特殊处理,该点的值为:

δi=maxj∈dataset(dij) (6)

1.5.构造以ρ为横轴,δ为纵轴的决策图,如图4所示。根据决策图选择数据点密度ρ和高密度距离δ聚类都较高,且明显远离大部分样本的右上角区域的密度峰值点为聚类中心。确定初始聚类中心后,聚类中心数即为聚类数目。

2.第二阶段:加速迭代聚类算法

2.1.考虑局部密度对数据聚类的影响,使用密度加权系数能够加快数据的收敛,使用新隶属度公式(7)更新隶属度矩阵。

其中τ为密度加权系数,其值为λ为振荡因子。

2.2.如果目标函数或者达到最大的迭代次数,则停止,否则继续下一步。

2.3.使用步骤1.5重新计算模糊聚类中心,跳到步骤2.1。

请参阅图3,本发明实施例提供的一种基于密度峰值的大数据挖掘装置的一个实施例,包括:

第一计算单元301,用于获取到数据集,并计算数据集的每两个数据之间的欧氏距离,得到距离矩阵;

第二计算单元302,获取到预置截断距离,并通过第一预置公式对距离矩阵和截断距离进行计算,得到数据集的各个数据的局部密度,并根据各个数据的局部密度确定各个数据的高密度距离;

选取单元303,用于构造以局部密度为横轴、高密度距离为纵轴的决策图,根据各个数据的局部密度和各个数据的高密度距离在决策图上选取聚类中心;

第三计算单元304,用于通过第二预置公式对聚类中心、预置密度加权系数、预置振荡因子进行计算得到隶属度矩阵,根据隶属度矩阵和距离矩阵构造目标函数,并将预置迭代次数的值增加一;

判断单元305,用于若目标函数小于预置容许误差或预置迭代次数不小于预置最大迭代次数,则结束,若目标函数不小于预置容许误差或预置迭代次数小于预置最大迭代次数,则触发选取单元。

第二计算单元302包括:

第一计算子单元3021,用于通过第三预置公式并根据各个数据的局部密度对距离矩阵进行选取得到各个数据的高密度距离;

第二计算子单元3022,用于通过预置第四公式对局部密度最大的数据进行计算得到局部密度最大的数据的高密度距离。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1