一种基于改进和声搜索算法的数据自动聚类方法

文档序号:33193787发布日期:2023-02-04 10:05阅读:39来源:国知局
一种基于改进和声搜索算法的数据自动聚类方法

1.本发明涉及一种数据自动聚类方法,更具体的说,尤其涉及一种基于改进和声搜索算法的数据自动聚类方法。


背景技术:

2.聚类在机器学习、数据挖掘和数据探索性分析中发挥着重要的基础性作用。聚类旨在寻找给定数据集的潜在分布并将其分为互不交叉的组,使得同一组内的元素属性比不同组间的元素属性更相似。各种聚类工具已广泛运用到图像处理、网络信息、医学、工程等领域。
3.根据聚类特征不同,聚类算法通常可分为划分式聚类、层次式聚类、基于密度的聚类、基于网格的聚类以及其它类型聚类。其中,划分式聚类是最常见的一种聚类形式。划分式聚类指在聚类数目或聚类中心预知前提下,通过迭代方式改变分组,使得目标函数误差值逐渐减小直至收敛,从而得到相对最优的聚类结果。
4.作为经典的划分式聚类算法,k-means由于简洁性和高效性,得到了广泛应用。然而,包括k-means在内的划分式聚类算法需要预先指定聚类数目或聚类中心点,但用户通常难以预知此信息。因此,如何自动获取聚类中心点,实现数据集的划分具有重要研究意义。
5.基于启发式优化算法的自动聚类,是将聚类中心作为决策变量,但由于聚类数目未知,变量的优化机会通常根据激活阈值和截止阈值来决定,而截止阈值需要用户合理设置,从而增加算法的不确定性,此外聚类的优化性能还有待提高。
6.和声搜索(hs)作为相对流行的启发式优化算法具有较高的优化效率和较强的全局搜寻能力,它在解决数据聚类问题研究中表现出了良好性能和潜力。但是,和声搜索算法易受参数设置的影响,存在过早收敛、缺乏多样性和易陷入局部最优等问题。


技术实现要素:

7.本发明为了克服上述技术问题的缺点,提供了一种基于改进和声搜索算法的数据自动聚类方法。
8.本发明的基于改进和声搜索算法的数据自动聚类方法,其特征在于,通过以下步骤来实现:
9.a).待聚类数据初始化,将待聚类的数据存储在集合x中,形成数据集x,记为x={x1,x2,...,xi,...,xn};xi为待聚类的第i个数据;
10.b).和声记忆库的建立与初始化,设最小聚类数目为k
min
,k
min
≥2,最大聚类数目为k
max
,k
max
>k
min
;建立有效聚类数目分别为k
min
、k
min
+1、

、k
max
的矩阵式和声记忆库,代表不同聚类数目的数据成一行存放,从集合x中随机选取k
max
·
(k
max-k
min
+1)个数据用于和声记忆库的初始化,每一行初始化k
max
个数据;对于代表聚类数目为k的一行数据用和声矢量表示,其前k个数据为聚类中心的有效解,其余变量为无效解,k
min
≤k≤k
max

11.c).确定适应度函数,选择内部聚类评价指标pbm作为评判聚类质量的适应度函
数,用于计算和声记忆库中每个和声矢量的适应度值;
12.d).更新和声记忆库,首先判断是否满足所需的迭代次数ni,否则从和声记忆库中随机选择一个聚类数目为k的和声矢量采用和声搜索算法生成新的和声矢量在新生成和声矢量的适应度优于原和声矢量的适应度的情况下,利用和声矢量替换实现和声记忆库的更新;直至迭代次数达到ni;
13.e).输出聚类结果,迭代结束后,从适应度最优的和声矢量中获得聚类数目和聚类中心点,按照最近距离原则实现数据集x中数据的划分。
14.本发明的基于改进和声搜索算法的数据自动聚类方法,步骤c)中所确定的适应度函数为:
[0015][0016]
其中,k表示聚类数目,e
t
为数据集x中所有点到整个数据集中心的距离之和,ew为类簇内所有点到质心的距离之和,db为数据集中类簇质心间的最大距离;pbm越大表明聚类效果越好;
[0017]et
、ew和db通过如下公式进行求取:
[0018][0019]
其中,c为整个数据集的中心,cj、cj′
为不同类簇的质心,ij表示j类簇中所有对象的标号集。
[0020]
本发明的基于改进和声搜索算法的数据自动聚类方法,步骤d)中所述的更新和声记忆库具体通过以下步骤来实现:
[0021]
d-1).选择优化目标,在正整数区间[k
min
,k
max
]中随机生成一个正整数k,然后从声记忆库中选取代表聚类数目为k的和声矢量为当前优化目标;
[0022]
d-2).在区间(0,1)内随机生成一实数rand1,然后判断rand1小于声记忆库取值概率hmcr是否成立,hmcr∈(0,1),如果不成立,则执行步骤d-3);如果成立,则执行步骤d-4);
[0023]
d-3).从数据集x中随机选取k个数据作为当前和声记忆库中新的和声矢量执行步骤d-7);
[0024]
d-4).按照从前至后的排序,从当前和声矢量中找出待生成的数据x
k,j
,x
k,j
表示当前和声矢量中第j个数据,j∈[1,

,k];
[0025]
d-5).在区间(0,1)内随机生成一实数rand2,然后判断rand2小于节距调节概率par是否成立,par∈(0,1),如果不成立,则执行步骤d-7);如果成立,则执行步骤d-6);
[0026]
d-6).利用公式(3)所示的节距调整函数生成x
new,j

[0027]
x
new,j
=χ
×
[x
best,j
+rand3×
(x
r1,j-x
r2,j
+x
r3,j-x
r4,j
)]
ꢀꢀꢀ
(3)
[0028]
其中,x
r1,j
、x
r2,j
、x
r3,j
、x
r4,j
为从和声记忆库中随机选取4个标号不同的和声矢量
的第j个变量值,x
best,j
为和声记忆库中具有最佳适应度的和声矢量的第j个变量值,χ和rand3均为介于0和1之间的随机实数;
[0029]
并将生成的x
new,j
替换x
k,j
;执行步骤d-7);
[0030]
d-7).判断是否生成了新的和声矢量如果判断为是,则执行步骤d-8);如果判断为否,则执行步骤d-2);
[0031]
d-8).根据公式(1)分别计算出新的和声矢量当前和声矢量的适应度,并判断的适应度是否优于的适应度,如果优于,则执行步骤d-10);如果不优于,则执行步骤d-9);
[0032]
d-9).根据k-means质心求解公式更新当前和声矢量中的k个数据,来获取执行步骤d-10);
[0033]
d-10).利用替换来实现和声记忆库的更新;执行步骤d-11);
[0034]
d-11).判断当前迭代次数是否达到了设定的迭代次数ni,如果达到,则和声记忆库的更新结束,如果没有达到,则执行步骤d-1)。
[0035]
本发明的基于改进和声搜索算法的数据自动聚类方法,步骤d-2)中所述的和声记忆库取值概率hmcr通过公式(4)进行求取:
[0036][0037]
其中,gn为当前迭代次数,ni为设定的所需达到的迭代次数;
[0038]
步骤d-5)中所述的节距调节概率par通过公式(5)进行求取:
[0039][0040]
其中,gn为当前迭代次数,ni为设定的所需达到的迭代次数。
[0041]
本发明的基于改进和声搜索算法的数据自动聚类方法,步骤d-9)中根据k-means质心求解公式更新当前和声矢量中k个数据的公式如下:
[0042][0043]
其中,cj为更新后的聚类中心点,xi表示聚类对象,xi∈cj表示聚类对象xi归属cj类簇。
[0044]
本发明的基于改进和声搜索算法的数据自动聚类方法,优选地,k
min
=2。
[0045]
本发明的有益效果是:本发明的基于改进和声搜索算法的数据自动聚类方法,首先建立聚类数目从k
min
到k
max
的和声记忆库,并确定适应度函数,然后采用和声搜索算法来更新和声记忆库,通过足够次数的迭代更新,自适应度最优的和声矢量中有效数据和有效数据个数分别作为聚类中心点、聚类数目,即可实现数据的聚类划分;整个数据聚类过程中,即避免了优化截止阈值的设定,又可防范出现聚类数小于2的情形,提高了聚类性能,并具有可调参数少,操作简单,聚类精度更高的优点。
[0046]
进一步地,选择pbm聚类评价指标作为适应度函数来计算和声矢量的适应度值,通过该评价函数,能够得到相对更好的聚类结果。
[0047]
进一步地,声记忆库取值概率hmcr被设置为随迭代次数在区间(0,1)中递增的数值函数,这样,在算法早期优化阶段,较小hmcr值有利于增加解向量的多样性,避免陷入局部最优,随着迭代寻优,局部最优风险逐渐降低,hmcr值应随之增大以加强和声矢量的集约化水平。
[0048]
进一步地,节距调节概率par被设置为随迭代次数在区间(0,1)中递减的数值函数,这样,在优化前期,较高的par概率值有助于多样性搜寻,而在优化后期,降低par值有利于平衡和声记忆库中各和声矢量表现,从而充分发挥和声记忆库的平台优势,进一步提高优化精度。
附图说明
[0049]
图1为本发明的基于改进和声搜索算法的数据自动聚类方法的流程图;
[0050]
图2为本发明中所建立的和声记忆库的示意图;
[0051]
图3为本发明中声记忆库取值概率hmcr、节距调节概率par与迭代次数ni的关系曲线图;
[0052]
图4为三组人工数据集用于聚类对比实验以确定聚类评价指标;;
[0053]
图5为不同聚类方法在各个数据集上的优化收敛曲线;
[0054]
图6为4幅常见的灰度基准图像,分别是lena、mandrill、jet和peppers。
[0055]
图7为图6中4幅灰度基准图像经本发明的数据自动聚类方法处理后的图像。
具体实施方式
[0056]
下面结合附图与实施例对本发明作进一步说明。
[0057]
如图1所示,给出了本发明的基于改进和声搜索算法的数据自动聚类方法的流程图,其通过以下步骤来实现:
[0058]
a).待聚类数据初始化,将待聚类的数据存储在集合x中,形成数据集x,记为x={x1,x2,...,xi,...,xn};xi为待聚类的第i个数据;
[0059]
b).和声记忆库的建立与初始化,设最小聚类数目为k
min
,k
min
≥2,最大聚类数目为k
max
,k
max
>k
min
;建立有效聚类数目分别为k
min
、k
min
+1、

、k
max
的矩阵式和声记忆库,代表不同聚类数目的数据成一行存放,从集合x中随机选取k
max
·
(k
max-k
min
+1)个数据用于和声记忆库的初始化,每一行初始化k
max
个数据;对于代表聚类数目为k的一行数据用和声矢量表示,其前k个数据为聚类中心的有效解,而其余变量为无效解,(k
min
≤k≤k
max
);
[0060]
如图2所示,给出了本发明中所建立的和声记忆库的示意图,存储在和声记忆库的和声矢量被编码为实数值字符串,并分别代表具有k
min
到k
max
之间特定数目的聚类中心点。因此,和声记忆库的大小hms为:k
max-k
min
+1。除非另有规定,否则k
min
通常选择数值“2”。假设聚类数据集的维度为d,则和声矢量长度为:k
max
×
d。图2展示了和声记忆库的表现形式,对于代表特定聚类数目k(k∈[2,k
max
])的和声矢量,其前面k个项目为有效解,并表示为聚类中心点,用符号
“●”
标注,剩余变量为无效解,用符号
“○”
标注。
[0061]
c).确定适应度函数,选择内部聚类评价指标pbm作为判评聚类质量的适应度函数,用于计算和声记忆库中每个和声矢量的适应度值;
[0062]
该步骤中,所确定的适应度函数为:
[0063][0064]
其中,k表示聚类数目,e
t
为数据集x中所有点到整个数据集中心的距离之和,ew为类簇内所有点到质心的距离之和,db为数据集中类簇质心间的最大距离;pbm越大表明聚类效果越好;
[0065]et
、ew和db通过如下公式进行求取:
[0066][0067]
其中,c为整个数据集的中心,cj、cj′
为不同类簇的质心,ij表示j类簇中所有对象的标号集。
[0068]
d).更新和声记忆库,首先判断是否满足所需的迭代次数ni,否则从和声记忆库中随机选择一个聚类数目为k的和声矢量采用和声搜索算法生成新的和声矢量在新生成和声矢量的适应度优于原和声矢量的适应度的情况下,利用和声矢量替换实现和声记忆库的更新;直至迭代次数达到ni;
[0069]
该步骤中,所述的更新和声记忆库具体通过以下步骤来实现:
[0070]
d-1).选择优化目标,在正整数区间[k
min
,k
max
]中随机生成一个正整数k,然后从声记忆库中选取代表聚类数目为k的和声矢量为当前优化目标;
[0071]
d-2).在区间(0,1)内随机生成一实数rand1,然后判断rand1小于声记忆库取值概率hmcr是否成立,hmcr∈(0,1),如果不成立,则执行步骤d-3);如果成立,则执行步骤d-4);
[0072]
在和声搜索算法中,多样化和集约化受参数hmcr(声记忆库取值概率)和par(节距调整概率)的合作与协调。对于目前多数和声搜索算法研究,其核心参数仍需要人工设置,算法操作繁琐,自适应性不强,尤其对于新手用户。在(1-hmcr)概率下,算法通过初始解空间随机生成新的和声矢量。因此,在算法早期优化阶段,较小hmcr值有利于增加解向量的多样性,避免陷入局部最优。随着迭代寻优,局部最优风险逐渐降低,hmcr值应随之增大以加强和声矢量的集约化水平,将hmcr修改为随迭代次数非线性增加的动态量。
[0073]
该步骤中,所述的和声记忆库取值概率hmcr通过公式(4)进行求取:
[0074][0075]
其中,gn为当前迭代次数,ni为设定的所需达到的迭代次数。
[0076]
d-3).从数据集x中随机选取k个数据作为当前和声记忆库中新的和声矢量执行步骤d-7);
[0077]
d-4).按照从前至后的排序,从当前和声矢量中找出待生成的数据x
k,j
,x
k,j
表示当前和声矢量中第j个数据,j∈[1,

,k];
[0078]
d-5).在区间(0,1)内随机生成一实数rand2,然后判断rand2小于节距调节概率par是否成立,par∈(0,1),如果不成立,则执行步骤d-7);如果成立,则执行步骤d-6);
[0079]
该步骤中,改进和声搜索算法的节距参数,在优化前期有助于多样性搜寻,则节距调整概率(par)需要设置较大的初始值。而在优化后期,较大par值会过分强调数值的微调作用,难以平衡和声记忆库中各和声矢量表现,容易出现“短板效应”,无法充分发挥和声记忆库的平台优势。但如果par值太小,则缺乏足够的局部扰动,影响优化精度。优选利用指数函数将算法的par值从1降至0.3左右。
[0080]
所述的节距调节概率par通过公式(5)进行求取:
[0081][0082]
其中,gn为当前迭代次数,ni为设定的所需达到的迭代次数。
[0083]
d-6).利用公式(3)所示的节距调整函数生成x
new,j

[0084]
x
new,j
=χ[x
best,j
+rand3×
(x
r1,j-x
r2,j
+x
r3,j-x
r4,j
)]
ꢀꢀꢀ
(3)
[0085]
其中,x
r1,j
、x
r2,j
、x
r3,j
、x
r4,j
为从和声记忆库中随机选取4个标号不同的和声矢量的第j个变量值,x
best,j
为和声记忆库中具有最佳适应度的和声矢量的第j个变量值,χ和rand3均为介于0和1之间的随机实数;
[0086]
并将生成的x
new,j
替换x
k,j
;执行步骤d-7);
[0087]
该步骤中,受差分进化算法中变异形式的启发,提出了和声搜索算法的节距参数新方案,即和声记忆库中不同随机变量间的数值差。此外,为提高解的多样性,以平衡探索-开发的矛盾为目标,通过更多扰动以增强全局搜寻功能,在节距调整函数中引入随机数作为收缩因子χ。
[0088]
d-7).判断是否生成了新的和声矢量如果判断为是,则执行步骤d-8);如果判断为否,则执行步骤d-2);
[0089]
d-8).根据公式(1)分别计算出新的和声矢量当前和声矢量的适应度,并判断的适应度是否优于的适应度,如果优于,则执行步骤d-10);如果不优于,则执行步骤d-9);
[0090]
d-9).根据k-means质心求解公式更新当前和声矢量中的k个数据,来获取执行步骤d-10);
[0091]
该步骤中,根据k-means质心求解公式更新当前和声矢量中k个数据的公式如下:
[0092][0093]
其中,cj为更新后的聚类中心点,xi表示聚类对象,xiχcj表示聚类对象xi归属cj类簇。
[0094]
d-10).利用替换来实现和声记忆库的更新;执行步骤d-11);
[0095]
d-11).判断当前迭代次数是否达到了设定的迭代次数ni,如果达到,则和声记忆库的更新结束,如果没有达到,则执行步骤d-1)。
[0096]
e).输出聚类结果,迭代结束后,从适应度最优的和声矢量中获得聚类数目和聚类中心点,按照最近距离原则实现数据集x中数据的划分。
[0097]
在和声记忆库中,适应度函数表现最好的一组和声矢量,其所包含的前k个项目为有效解,并分别表示为聚类中心点。通过计算数据集与各聚类中心的距离,将其分配给相似度最近的类簇,从而完成簇的划分。
[0098]
优选地,k
min
=2。
[0099]
聚类有效性指标用于评价聚类划分性能,通常分为内部评价指标和外部评价指标。当数据的原始划分未知时,需要采用内部评价指标。内部评价指标是基于数据集本身的自然分布特征来对聚类结果进行评价。内部评价指标也称为聚类无监督方法,不仅能有效度量聚类质量,而且还可用来确定数据集的类簇数。
[0100]
本发明所提出的基于改进和声搜索算法的数据自动聚类方法是在聚类先验信息未知情况下,自动确定合适的聚类数,因此,聚类算法的适应度函数应选用内部评价指标。在众多内部聚类评价标准中,db(davies-boldin)指标,xb(xie-beni)指标和pbm指标是三种常见的形式。
[0101]
对于上述三种聚类指标,本发明为验证哪个指标更适合作为算法适应度函数,同时确定当和声记忆库的大小,即参数hms(对应最大聚类数k
max
减1)为何值时,算法的自动聚类性能表现最佳。图4给出了三组人工数据集用于聚类对比实验,其特征信息如表1所示。
[0102]
表1
[0103][0104]
将db、xb、pbm三种有效性指标作为自动聚类算法的适应度函数,参数hms值分别设置为5、10、15、20和25等。算法的适应度函数评估次数为200,并在每组实验数据集上独立执行20次操作。结果表明,pbm作为自动聚类算法的适应度函数能够获得更好聚类数目的均值和标准差。
[0105]
在以pbm指标为适应度函数条件下,当参数hms值为5、10和15时,算法在三组数据集上均能获得准确且稳定的聚类数目。但当该数值继续变大时,聚类结果随之变差,且算法运行时间也变长。考虑hms=k
max-1,在满足聚类要求前提下,为使自动聚类算法具有更广的应用范围,其最大聚类数目k
max
应尽可能高。因此,将参数hms值设定为15,考虑hms=k
max-1,则自动聚类算法的最大聚类数为k
max
=16。
[0106]
为评估本发明所提自动聚类方法的优越性,利用真实数据集进行综合对比实验:一是验证改进和声搜索算法用于自动聚类是否优于其它和声搜索算法;二是对比本发明的自动聚类方法是否优于其它不同类型的聚类方法。
[0107]
首先验证本发明的改进和声搜索在自动聚类中是否优于其它和声搜索算法类型,包括基本和声搜索(hs)、改善和声搜索(lhs)、混合和声搜索(hhs)、参数自适应和声搜索(pahs)。通过参考每种算法的原始文献,设置它们最佳参数。为了实验公平性,每种和声搜索算法的和声记忆库大小(hms),也表示最大聚类数k
max
减1,均取值15。所有算法的适应度评估次数为200,并分别在每组数据集上独立执行40次操作,统计获得聚类数的均值和标准
差。
[0108]
实验结果表明,本发明提出的自动聚类算法在多数场合下能够获得更接近实际数目的聚类值,且标准差也相对偏低。此外,图5展示了不同算法在各个数据集上的优化收敛曲线,曲线来源于适应度函数pbm均值,图中的dphs代表本发明所提出的用于数据自动聚类的改进和声搜索算法。从图中看出,相比其它和声搜索算法,本发明中改进和声搜索用于自动聚类普遍获得更高的pbm指标值。
[0109]
其次,对比本发明的自动聚类方法与其它聚类方法,包括k-means、robust k-means以及基于不同优化算法的自动聚类方法,包括基于改进差分进化算法的自动聚类(acde)、基于粒子群优化的动态聚类(dcpso)、极易遗传进化的自动聚类(gcuk)、基于膜计算的聚类算法(membrane systems)等。为了实验公平性,遵循各对比算法的参数设置要求,适应度函数评估次数为300,最大聚类数为15,对各组数据集分别进行50次独立运算。
[0110]
实验结果表明,相比其它自动聚类方法,本发明提出的自动聚类算法在聚类应用中有了进一步提高,能够获得性能稳定且更符合实际要求的聚类数目。
[0111]
本发明还尝试将提出的自动聚类算法用于二维灰度图像分割。图像分割也可以视为一种聚类问题,其中的像素点代表聚类对象,每个区域对应一个类簇。
[0112]
该实验选用4幅常见的灰度基准图像,分别是lena、mandrill、jet和peppers,如图6所示。图像尺寸大小均为512*512,像素点总数为262144。
[0113]
但是,在利用聚类进行图像分割时,由于聚类特征是像素数值而非距离模式,有效性指标pbm作为适应度函数会倾向于聚类数的增加。为了应对这种偏见,在pbm中引入了惩罚系数则改进后的pbm表示形式为:
[0114][0115]
为惩罚系数,其定义式为:
[0116][0117]
其中,k
max
和k
min
分别为最大、最小聚类数,k为当前聚类簇值。
[0118]
为充分发挥算法的聚类性能,算法适应度函数的评估次数设置为10000,并分别对每幅图像独立执行30次操作。实验结果表明,本发明提出基于改进和声搜索算法的数据自动聚类方法能够获得接近灰度图像的基准分类数。表2给出了基于改进和声搜索算法的数据自动聚类方法所获得相对最优聚类中心点。
[0119]
表2
[0120][0121]
根据聚类中心点,得到图像的分割效果,见图7。从分割结果看出,不同物体对象之间具有可辨识性。虽然分割效果仍难以达到最佳状态,但相对较好的实验结果也为该研究
领域提供了良好参考价值和指导意义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1