一种基于多属性决策的最优聚类算法选择方法和装置与流程

文档序号:17605386发布日期:2019-05-07 20:41阅读:504来源:国知局
一种基于多属性决策的最优聚类算法选择方法和装置与流程

本公开涉及一种基于多属性决策的最优聚类算法选择方法和装置。



背景技术:

随着社会的快速发展,许多行业产生了大量的数据,人工智能和数据挖掘等各种信息技术已经在很多方面得到应用。聚类是一种常用的数据挖掘方法,可以识别数据中潜在的相关联的分布和模式。聚类是一种无监督的数据处理方法,没有先验数据,因此它完全取决于数据之间的相似性。由于聚类的无监督性质,如何测量算法的性能和正确性至关重要。此外,没有免费的午餐定理曾经指出,最佳方法或模型的普遍性并不存在。一些聚类算法可能适用于凸结构,但不适用于环簇结构,例如k均值算法。一些常用的算法有:dbscan算法,k-means算法,cobweb,fuzzyc-means,farthestfirst和em。如果对数据的先验知识较少,则无法确定使用哪种算法,如果随机选择聚类算法,最终聚类结果可能是很模糊的。

目前,算法评价越来越受到重视,现有文献中指出可以对不同类型的聚类算法进行排序,然后可以选择最优算法。g.wang将决策方法应用于数据挖掘,研究了聚类的模型选择问题,提出了一种新的选择方法。y.zhang利用聚类有效性来评估处理算法的结果并选择最优参数,然后引入多目标决策进行排序算法,同时选择最优算法。2015年,w.wu提出了基于多目标决策的数据挖掘模型评估理论框架。msm算子最初由c.maclaurin提出。

在聚类分析中,处理不同数据类型时的算法不一样,因此也存在着各种类型的算法。由于几乎没有聚类的先验知识,仅基于经验的聚类算法可能无法获得良好的聚类结果。因此,如何选择最优的聚类算法,得到良好的聚类结果,尚缺乏有效的解决方案。



技术实现要素:

为了克服上述现有技术的不足,本公开提供了一种基于多属性决策的最优聚类算法选择方法和装置,建立聚类算法选择框架可以有效地解决基于经验的聚类算法可能无法获得良好的聚类结果的问题,选择了几种不同的评价方法并结合其处理结果,来验证聚类结果,使得选择的算法更准确。

本公开所采用的技术方案是:

一种基于多属性决策的最优聚类算法选择方法,该方法包括以下步骤:

采用多个待选择聚类算法,分别对数据集进行聚类;

采用聚类有效性评估方法分别对每个待选择聚类算法的聚类结果进行评价,基于评价结果构建决策矩阵;

计算决策矩阵各列的权重值;

采用msm相关算子处理决策矩阵,得到每个待选择聚类算法的最终评价值;

根据每个待选择聚类算法的最终评价值,从多个待选择聚类算法中选择出最优的聚类算法。

进一步的,所述采用多个待选择的聚类算法,分别对数据集进行聚类的步骤包括:

获取原始数据,判断原始数据是否有类标签,若有,则选择相似数据集作为训练数据集,若没有,则选择原始数据的部分数据作为训练数据集;

利用多个待选择的聚类算法分别对对训练数据集进行聚类,得到每个待选择聚类算法的聚类结果。

进一步的,所述决策矩阵的构建方法为:

计算每个待选择聚类算法的聚类结果的聚类有效性评价指标,所述聚类有效性评价指标包括纯度、兰德指数、统计量、相似度和频率;

基于所有待选择聚类算法的聚类有效性评价指标;

基于所有聚类算法的聚类有效性评价指标建立多个列向量,组成决策矩阵。

进一步的,所述决策矩阵各列的权重值的计算公式为:

进一步的,所述采用msm相关算子处理决策矩阵的步骤包括:

基于决策矩阵各列权重值,计算wmsm算子和gwmsm算子;

根据wmsm算子和gwmsm算子,计算所选择的每个聚类算法的最终评价值。

进一步的,所述选择出最优的聚类算法的方法为:

按照得到的每个待选择聚类算法的最终评价值大小,对所有待选择聚类算法进行排序,得到待选择聚类算法的优先级;

根据所选择的聚类算法的优先级,从多个待选择聚类算法中选择最终评价值最大的聚类算法作为最优的聚类算法。

进一步的,还包括:选择出最优聚类算法的最优k值。

进一步的,所述最优聚类算法的最优k值的选择方法为:

选择多个不同k值的最优聚类算法,分别对数据集进行聚类,得到每个k值的聚类结果;

计算每个k值的聚类结果的聚类有效性评价指标,基于所有k值的聚类结果的聚类有效性评价指标,建立决策矩阵;

计算决策矩阵各列权重值;

基于决策矩阵的各列权重值,计算wmsm算子和gwmsm算子;根据wmsm算子和gwmsm算子,计算每个k值的最终评价值;

根据每个k值的最终评价值的大小,选择最终评价值最大的k值作为最优聚类算法的最优k值。

一种最优聚类算法选择装置,该装置包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的最优聚类算法选择方法。

通过上述技术方案,本公开的有益效果是:

(1)本公开选择多个不同的有效性评级指标对聚类算法的聚类结果进行评价,使得选择的算法将更准确,还选择多个不同聚类有效性评价指标对不同聚类算法的聚类结果进行评价,通过处理评价值找出最优聚类划分数目,该方法可以作为非均匀性数据集选择相应的优化算法;

(2)本公开采用msm算子和基于最大偏差的权重计算方法对聚类结果进行计算,根据评价结果找出最优聚类算法;并采用聚类有效性评价方法对不同k值的最优聚类算法进行评估,建立决策矩阵,并选择多个不同聚类有效性评价指标对取不同k值时的聚类结果进行评价,得到最优的k值,在聚类算法中k值的选择上有很高的准确度。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本申请,并不构成对本公开的不当限定。

图1是最优聚类算法选择方法的流程图;

图2是最优聚类算法选择方法的实验结果示意图。

具体实施方式

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

名词解释:

(1)dbscan算法,density-basedspatialclusteringofapplicationswithnoise,是一个基于高密度连接区域的密度聚类方法,通过检查数据库中每个点的ε-邻域来寻找聚类。

(2)k-means算法,是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。

(3)cobweb算法,是一种流行的简单增量概念聚类算法,它的输入对象用分类属性-值对来描述,以一个分类树的形式创建层次聚类。

(4)fuzzyc-means算法,是基于对目标函数的优化基础上的一种数据聚类方法,聚类结果是每一个数据点对聚类中心的隶属程度,该隶属程度用一个数值来表示。

(5)farthestfirst算法,是快速的近似的k均值聚类算法。

(6)em算法,expectationmaximizationalgorithm,是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(e步),另一个为极大步(m步)。

(7)purity,聚类评价方法中纯度指标。

(8)ri,聚类评价方法中兰德指标。

(9)f-measure,聚类评价方法中统计量指标。

(10)jacard,聚类评价方法中相似度指标。

(11)fm,聚类评价方法中频率指标。

(12)wmsm算子,加权聚合算子。

(13)gwmsm算子,加权广义聚合算子。

(14)msm,maclaurin提出的聚合算子,全称为maclaurinsymmetricmean算子。

一种或多种实施例提供一种基于多属性决策的最优聚类算法选择方法,首先,选择了几种不同类别的聚类算法;然后使用聚类有效性评估方法来对聚类算法进行评价,并将评价结果的数据整理出来,建立决策矩阵;最后,使用多属性决策框架来处理决策矩阵,并对这些聚类算法进行排序,从而选择出最优的聚类算法。

如图1所示,该最优聚类算法选择方法包括以下步骤:

s101,选择几种不同类别的聚类算法,分别对数据集进行聚类。

所述步骤101的具体实现方式如下:

s101-1,判断原始数据是否有类标签,若有,则选择相似数据集作为训练数据集,若没有,则选择原始数据的部分数据作为训练数据集。

s101-2,选择cobweb算法、em算法、farthestfirst算法、k-means算法、fuzzyc-means算法,分别对训练数据集进行聚类,得到各个聚类算法的聚类结果。

s102,采用聚类有效性评估方法分别对每个聚类算法的聚类结果进行评价,基于评价结果构建决策矩阵。

所述步骤s102中,所述决策矩阵的构建方法为:

计算每个聚类算法的聚类结果的聚类有效性评价指标,所述聚类有效性评价指标包括纯度(purity)、兰德指数(ri)、统计量(f-measure)、相似度(jacard)和频率(fm);

基于所有聚类算法的聚类有效性评价指标,建立多个列向量,组成决策矩阵r。其中,每个列向量表示所有聚类算法的一聚类有效性评价指标。

在本实施例中,所述聚类有效性评价指标的计算方法为:

s102-1,纯度指标是代表一个簇内异质样本的数量,并且纯度越高,样本的异质性越小,聚类效果越好。纯度的定义如下:

其中,对于整个数据集上的所有集群类分区的纯度度量为purity,可以表示为集群纯度的算术平均值;nr表示第r个节点类的数目,nir表示第i个被标记的样本的数目,n表示数据集中对象的总数目。

无论是单簇的纯度还是总纯度,其取值范围都是[0,1]。纯度越高,集群的划分(或总划分)的质量越好,并且它越接近正确的类标识。

s102-2,兰德指数是基于统计的评估指标。它可以应用于数据挖掘,用于评估两个数据簇之间的相似度。

假设给定数据集s={c1,c2,...,cn},包含n个元素和s的两个分区集合c1和c2。集合s中与c1和c2相交的元素的数量为a;集合s中与c1和c2不相交的元素的数量为b;集合s中与c1相交且与c2没有相交的元素的数量为c;集合s中的元素数量与c2相交且与c1不相交的元素数量d;所以,兰德指数(ri)指标的定义如下:

兰德指数的取值范围是[0,1],其中,0表示两个数据簇之间没有匹配点,1表示数据簇集群是相同的。

但是ri不能保证在类别标签是随机分配的情况下,其值接近0。为了解决这一问题,调整兰德系数(adjustedrandindex)被提出来,ari有更高的区分度,其公式为:

ari的取值范围是[-1,1],它的值越大说明聚类效果越好。也就是说,ari可以测出两个数据的吻合程度。

s102-3,f测度是一个与信息检索相关的概念,它表示查全率与查准率。f-measure的定义如下:

其中,n表示数据集的数据量,c是类的集合,k是簇的集合,r是查全率,p是准确率。

s102-4,jacard指数也称为相似度,假设给定数据集s={c1,c2,...,cn},包含n个元素和s的两个分区集合c1和c2。集合s中与c1和c2相交的元素的数量为a;集合s中与c1和c2不相交的元素的数量为b;集合s中与c1相交且与c2没有相交的元素的数量为c;集合s中的元素数量与c2相交且与c1不相交的元素数量d。jacard指标的计算公式如下:

s102-5,与rand指标的表示方法类似,假设给定数据集s={c1,c2,...,cn},包含n个元素和s的两个分区集合c1和c2。集合s中与c1和c2相交的元素的数量为a;集合s中与c1和c2不相交的元素的数量为b;集合s中与c1相交且与c2没有相交的元素的数量为c;集合s中的元素数量与c2相交且与c1不相交的元素数量d。fm指标表示为:

上述的几种聚类有效性评价全都是评价值越大,簇内的相似性越高,簇间的差异性较大,意味着聚类算法的效果越好。

s103,采用客观重量确定方法计算决策矩阵各列权重值。

在正常情况下,如果决策矩阵的指标属性值的差值越小,那么属性权重对决策矩阵的影响就越小。相反,如果属性可以使决策矩阵的属性值都有较大的偏差,则表明该属性将在决策矩阵中发挥重要作用。因此,决策矩阵属性值的方差越大,应给予的权重越大,并且分散越小,应给予的权重越小。采用客观重量确定方法计算决策矩阵各列权重值的公式如下:

其中,d(rij,rlj)是第i行j列数据与其它数据的偏差,m为列数。

s104,采用msm相关算子处理决策矩阵,得到所选择的每个聚类算法的最终评价值。

所述步骤104的具体实现方式如下:

s104-1,基于决策矩阵各列权重值,计算wmsm算子和gwmsm算子;

所述wmsm算子的计算公式为:

其中,xi(i=1,2,…,n)为非负实数集,为矩阵元素,wj为决策矩阵第j列权重值,且表示一共累加了次,除以这个数求一个平均值。

所述gwmsm算子的计算公式为:

其中,xi(i=1,2,…,n)为非负实数集,为为矩阵元素,wj为决策矩阵第j列权重值,且为表示一共累加了次,除以这个数求一个平均值;pj为表示数据的pj次方,拉开数据之间的距离,更方便进行排序。

s104-2,根据wmsm算子和gwmsm算子,计算所选择的每个聚类算法的最终评价值r。

根据wmsm算子和gwmsm算子的公式可以计算出每个聚类方法最终的评价值,其具体过程为:

拿出一行评价某个聚类算法的数据,将其带入到wmsm算子和gwmsm算子的公式中去,最后可以得到一个具体的数值,将该数值作为该聚类算法的最终评价值;

然后计算下一个聚类算法的最终评价值;

都计算完之后按照评价值的大小进行排序。

s105,根据最终评价值的大小对所选择的聚类算法进行排序,获得聚类算法的优先级,从而选择出最优的聚类算法。

在本实施例中,按照步骤s104得到的每个聚类算法的最终评价值r的大小,对步骤s101所选择的聚类算法进行排序,得到所选择的聚类算法的优先级,根据所选择的聚类算法的优先级,选择最终评价值r最大的聚类算法作为最优的聚类算法。

s106,选取最优聚类算法的不同k值,采用上述的步骤102-104,得到最优的k值。

所述步骤106的具体实现方式如下:

s106-1,选择不同k值的最优聚类算法,分别对数据集进行聚类,得到不同k值的聚类结果;

s106-2,计算每个k值的聚类结果的聚类有效性评价指标,基于所有k值的聚类结果的聚类有效性评价指标,建立决策矩阵s;

s106-3,采用客观重量确定方法计算决策矩阵s各列权重值;

s106-4,基于决策矩阵s的各列权重值,计算wmsm算子和gwmsm算子;根据wmsm算子和gwmsm算子,计算每个k值的最终评价值r。

s106-5,根据每个k值的最终评价值的大小,选择最终评价值最大的k值作为最优的k值。

本实施例提出的最优聚类算法选择方法,选择多个不同的有效性评级指标对聚类算法的聚类结果进行评价,使得选择的算法将更准确,还选择多个不同聚类有效性评价指标对取不同k值时的聚类结果进行评价,通过处理评价值找出最优聚类划分数目,该方法可以作为非均匀性数据集选择相应的优化算法。

一种或多种实施例提供一种对如上所述的最优聚类算法选择方法的实验验证。该实验采用pycharm软件进行仿真,在intel(r)core(tm)cpu3.40ghz,8gb内存,windows7系统的计算机上运行。本实验选择聚类算法为:1.cobweb算法、2.em、3.farthestfirst算法、4.k-means算法、5.fuzzyc-means算法,采用聚类有效性评估方法评估聚类结果的数据,采用的数据集是已经分类完成的uci标准数据集来验证算法,在iris公共数据集上进行测试,如表1。数据集描述如下:

表1iris和wine数据集

基于以上数据,可以建立决策矩阵,评估结果如表2所示:

表2:评价结果

基于如上的评价结果,本实施例构建了一个5x5的决策矩阵。决策矩阵中的每一个数据表示聚类有效性评估方法对聚类算法的评估值。决策矩阵中的列表示评估方法,也表示属性,属性值越大,算法越好。

两种排序的结果为:

wmsm(m):

r1=0.46,r2=0.74,r3=0.64,r4=0.61,r5=0.69;

r1=0.47,r2=0.75,r3=0.65,r4=0.62,r5=0.70。

实验结果如下图2所示,由图2可以得出所选择的聚类算法的优先级:r2>r5>r3>r4>r1,即:em算法、fuzzyc-means算法、farthestfirst算法、k-means算法、cobweb算法。

从聚类算法的优先级可以看出,本实施例中wmsm算子和gmsm算子选择的最优聚类算法是em算法。

不同的k值对结果也会产生很大的影响,选取em算法,取k=2~6,使用聚类有效性评价方法对不同k值的em算法进行评价,并建立决策矩阵s。

表3:评价结果

使用上述聚类有效性评价方法再次对决策矩阵s进行运算,排序的结果为:0.90,0.93,0.92,0.87,0.83。由此可知,最优值为k=3,与真实数据的分类相同。由表3可以看出,取不同的k值时,单个指标选出的最优k值分别为k=4,k=3,k=2,k=3,k=4,这些值虽然都接近或者等于真实值(k=3),但是无法确定最优值。单个有效性评价方法具有较高的不一致性,而且由于聚类的无监督特性,我们无法确定数据的聚类划分数目,这就需要我们从现有的数据中找出分类数目,很明显从单个的聚类评价方法无法做到。

虽然这些评价结果都不相同,但是他们都围绕着真实值上下浮动,所以本实施例将这些评价方法结合到一起,就可以得出较好的聚类划分数目,实验结果表明,本公开在聚类算法中k值的选择上有很高的准确度。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

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