基于模糊逻辑COOT优化K调和均值的数据聚类算法
戴峦岳1,2, 梁宵月1, 王帅1, 王震坡2     
1. 北京牡丹电子集团有限公司博士后科研工作站, 北京 100089;
2. 北京理工大学电动车辆国家工程实验室, 北京 100081
摘要: 针对K调和均值(K-Harmonic Means,KHM)聚类算法易陷入局部最优的不足,本文结合KHM聚类算法的快速局部开发和白骨顶鸡优化算法(Coot optimization algorithm,COOT)的全局勘探能力,提出一种模糊逻辑COOT优化KHM的数据聚类算法(Fuzzy COOT K-Harmonic Means,FCOOTKHM)。将KHM聚类算法生成的初始聚类解输入白骨顶鸡初始种群结构再进行迭代寻优。同时,为了进一步提升COOT的搜索精度,设计模糊逻辑对COOT的收敛因子和领导者种群占比进行自适应调整,均衡算法的搜索与开发能力。使用聚类调和平均值评估种群个体的适应度,结合智能算法启发式搜索对聚类结果迭代寻优。利用加州大学欧文分校(University of California Irvine,UCI)数据库中的7个数据集对FCOOTKHM的聚类性能进行验证分析。结果表明,FCOOTKHM在准确率、精确度、召回率、F度量、Kappa系数和收敛效率等指标上均表现更好,该算法能够实现更精确的数据聚类。
关键词: 模糊逻辑    模糊系统    白骨顶鸡优化算法    K调和均值    聚类    收敛性    
A Data Clustering Algorithm Based on Fuzzy COOT K-Harmonic Means
DAI Luanyue1,2, LIANG Xiaoyue1, WANG Shuai1, WANG Zhenpo2     
1. Postdoctoral Research Station of Beijing Peony Electronic Group Co., Ltd., Beijing, 100089, China;
2. National Engineering Laboratory for Electric Vehicles, Beijing Institute of Technology, Beijing, 100081, China
Abstract: To solve the problem that the clustering algorithm K-Harmonic Means (KHM) is easy to fall into a local optimum, a clustering algorithm Fuzzy COOT K-Harmonic Means (FCOOTKHM) combining the rapid local development capability of KHM and the global exploration capability of Coot optimization algorithm(COOT) is proposed. The initial clustering solution generated by KHM is input as the initial population structure of COOT, and then iterative optimization is carried out. To further improve the search accuracy of COOT, a fuzzy logic is designed to adaptively adjust the convergence factor and leader population proportion of COOT, which can balance the search and development capabilities of the algorithm. The harmonic mean of clustering is used to evaluate the fitness of individual populations and iteratively search for clustering results. Seven datasets of University of California Irvine (UCI) were used to validate the clustering performance of FCOOTKHM. The results showed that the improved algorithm performed better in terms of accuracy, precision, recall, F-measure, Kappa coefficient and convergence speed, which can enable more accurate data clustering.
Key words: fuzzy logic    fuzzy system    Coot optimization algorithm (COOT)    K-Harmonic Means (KHM)    clustering    convergence    

数据聚类是模式识别、数据挖掘和机器学习领域的重要手段[1],尤其对车联网大数据的高效存储极为关键。作为一种无监督学习方法,数据聚类分析的目标是将数据集内的数据对象进行聚类划分,将数据对象划分为不相交子集,使得相同聚类内数据具有更高相似度,而不同聚类内的数据对象相似性较低[2]。K均值(K-Means,KM)聚类算法是一种最简单且高效的聚类算法,但具有明显的初始聚类质心敏感性高且易于过早收敛、陷入局部最优的不足[3]。为了克服KM聚类算法的不足,K调和均值(K-Harmonic Means,KHM)聚类算法[4]利用平均调和均值获取新的聚类中心,在一定程度上克服了初始质心敏感性问题,但模型对于噪声仍有敏感性,且依然存在局部最优问题。近年来,融入智能优化算法的数据聚类分析手段得到了广泛研究,借助智能算法具有更加强大的全局搜索性能优势,使聚类划分具有更高的相似度,从而找到全局最优解[5]。如王永刚等[6]提出一种基于和声搜索(Harmony Search,HS)的文本数据聚类算法,但和声搜索算法本身种群多样性不足,且解的质量与记忆考虑、微调扰动因子密切相关,无法保证最优。张雪峰等[7]、娄奥等[8]引入引力搜索机制并结合KM聚类算法实现数据聚类,但由于缺少记性属性,算法容易出现早熟收敛。Babu等[9]提出一种细菌优化算法的聚类方法,但其收敛性能具有不确定性。Li等[10]提出基于粒子群优化的聚类方法,但算法开采能力不足,容易陷入局部最优。叶廷宇等[11]、王海玲等[12]利用人工蜂群算法优化KM聚类的初始质心,提高了聚类准确性,但其问题在于维度增加后算法收敛效率下降较多。Jin等[13]则将混沌机制引入蜂群算法,在一定程度上提升了种群多样性和算法收敛速度。除此之外,混合智能优化算法[14]、变异萤火虫算法[15]和烟花算法[16]也都在数据聚类优化问题中得到了广泛应用。

白骨顶鸡优化算法(Coot optimization algorithm,COOT)[17]是一种模拟白骨顶鸡在水面上以不同运动模式捕食的新型启发式搜索算法。该算法关键参数少、模型简单且易于实现,在基准函数寻优问题上,也体现出优于粒子群算法、引力搜索算法和灰狼算法的搜索精度和收敛速度。COOT也在机器学习模型优化[18]和无线传感器网络(Wireless Sensor Network,WSN)节点覆盖优化[19]问题上得到了有效验证。然而,处理数据集聚类这类高维优化问题时,COOT的搜索精度与收敛因子调整、种群搜索的自适应性高度相关,造成算法依然存在搜索精度差、收敛慢的不足。为了解决KHM聚类算法求解聚类易陷入局部最优的不足,本文提出一种模糊逻辑COOT优化KHM的数据聚类算法(Fuzzy COOT K-Harmonic Means,FCOOTKHM),利用模糊逻辑机制提升COOT的搜索自适应性以及全局搜索能力,改进COOT和KHM聚类算法求解数据聚类问题,并提高COOT的全局搜索能力和KHM聚类算法的局部寻优能力,准确高效地搜索聚类中心最优解。同时,通过加州大学欧文分校(University of California Irvine,UCI)数据库,验证改进算法在求解精度和收敛速度上的性能。

1 模型构建 1.1 标准COOT

白骨顶鸡种群有3种行为模式:链式运动、领导者运动和追随者运动。整个种群会以适应度高低划分为领导者和追随者。领导者具有更强的逼近食物源的能力。追随者的位置更新具有两种模式:主动更新和被动更新;主动更新时,追随者可以随机运动和链式运动模式更新位置,丰富搜索的多样性,此时不依赖于领导者;被动更新时,追随者受到领导者的牵引作用而向其逼近。

白骨顶鸡初始种群位置生成方式为

$ {CootPos}(i)=r(1, d) \times(u b-l b)+l b, $ (1)

式中,r(·)为[0, 1]内的随机值,d为搜索维度,[lb, ub]为个体的搜索范围,CootPos(i)为个体i的位置。

① 追随者位置更新

追随者可按概率进行位置主动更新和位置被动更新。主动更新又可分为随机运动和链式运动两种模式。在随机运动中,首先以公式(2)生成个体的一个随机位置:

$ Q=r(1, d) \times(u b-l b)+l b, $ (2)

式中,Q为随机生成的个体位置。

受到随机位置的牵引,白骨顶鸡个体会向随机位置的方向移动,此时位置更新方式定义为

$ \begin{aligned} & { FollowPos }(i)= { FollowPos }(i)+A \times R_1 \times \\ & (Q-FollowPos(i)), \end{aligned} $ (3)

式中,FollowPos(i)为追随者i的位置,R1∈[0, 1]为随机值,收敛因子A的公式定义为

$ A=1-\frac{t}{T_{\max }} , $ (4)

式中,t为当前迭代次数,Tmax为最大迭代次数。

在链式运动中,白骨顶鸡个体会在两个相邻的个体间进行链式运动,此时位置更新方式定义为

$ \begin{aligned} & { FollowPos }(i)=0.5 \times( { FollowPos }(i-1)+\\ & { FollowPos(i)), } \end{aligned} $ (5)

式中,FollowPos(i-1)为相邻前一个追随者个体的位置。

被动更新时,追随者受领导者牵引。选择的领导者为

$ k=1+\left(i \bmod N_{\mathrm{L}}\right), $ (6)

式中,k为领导者个体索引,i为追随者索引,NL为领导者个体的数量。此时追随者被动位置更新方式为

$ \begin{array}{r} { FollowPos }(i)={LeadPos}(k)+2 \times R_2 \times \\ \cos (2 R \pi) \times({LeadPos}(k)-{FollowPos}(i)), \end{array} $ (7)

式中,LeadPos(k)为领导者k的位置,RR2∈[0, 1]为随机值。

② 领导者位置更新

领导者通常具有更强的逼近食物源的能力,会不断向最优解的区域靠近,因此主要受到全局最优解的引领。领导者位置更新方式为

$ \begin{gathered} { LeadPos }(i)= \\ \left\{\begin{array}{c} B \times R_3 \times \cos (2 R \pi) \times \\ (\text { gBest }- { LeadPos }(i))+\text { gBest }, R_4<0.5 \\ B \times R_3 \times \cos (2 R \pi) \times \\ (\text { gBest }- { LeadPos }(i))-\mathrm{gBest}, R_4 \geqslant 0.5 \end{array}\right. \end{gathered} , $ (8)

式中,LeadPos(i)为领导者i的位置,gBest为当前种群的最优解,R3R4∈[0, 1]为随机值,收敛因子B的公式定义为

$ B=2-\frac{2 t}{T_{\max }} 。$ (9)

对于COOT,领导者种群的位置更新受到全局最优解的牵引,充当全局搜索的角色。但在算法迭代过程中,领导者种群的占比是固定不变的。这就决定了整个算法寻优过程中,全局搜索能力保持不变。然而,对于群体智能算法而言,迭代前期应以大规模全局搜索为主,即以较大领导者占比对解空间广泛搜索,加快算法收敛;迭代后期应加大局部开发比重,即以较小领导者占比(追随者占比随之相应增加)对局部区域提高开采精度,整体提升算法收敛精度。

此外,在追随者随机运动和领导者位置更新过程中,收敛因子AB的作用是均衡两个种群类别对搜索与开发的比例,决定白骨顶鸡是扩大搜索范围还是收缩包围圈捕食。但从COOT的模型可知,两个参数仅是根据迭代次数进行简单的线性递减,这显然不符合种群的捕食规律。对于收敛因子A而言,值越大,表明随机个体的影响力越大,前次迭代的自身影响力越小,此时利于搜索。对于收敛因子B而言,值越大,前次迭代的自身影响力越大,全局最优解的影响力越小,此时利于开发。

1.2 模糊逻辑COOT(FCOOT) 1.2.1 模糊逻辑领导者种群占比调整机制

为了按照算法迭代的进程动态设置白骨顶鸡领导者的种群占比,本文引入一种基于模糊逻辑的领导者种群占比调整机制,建立一种模糊推理系统对领导者在整个种群中的占比进行非线性自适应更新。

模糊推理系统是以模糊逻辑为计算工具[20],能够高效实现多输入变量与单输出变量间的复杂非线性映射关系,主要由模糊化、模糊规则库、模糊推理和去模糊化4个模块构成,其结构如图 1所示。

图 1 模糊推理系统 Fig. 1 Fuzzy inference system

设置模糊推理系统的输入变量为迭代进程和种群多样性。迭代进程变量iter定义为

$ { iter }=\frac{t}{T_{\max }} , $ (10)

即迭代进程变量为算法当前迭代次数和最大迭代次数的比值。

种群多样性变量div定义为

$ \begin{gathered} \operatorname{div}= \\ \frac{1}{N} \sum\limits_{i=1}^N \frac{\sum_{j=1}^D x_{i, j}(t) x_{\text {best }, j}(t)}{\sqrt{\sum_{j=1}^D x_{i, j}^2(t)} \sqrt{\sum_{j=1}^D x_{\text {best }, j}^2(t)}}, \end{gathered} $ (11)

式中,N为种群个体总数,D为位置维度,xi, j(t)为t迭代时个体i维度j的位置,xbest, j(t)为此时最优解的j维度位置。种群多样性变量可视为当前白骨顶鸡个体与最优个体间的夹角余弦值,可反映个体间的相似性。种群多样性变量越大,反映相似性越强,表明种群多样性较低;反之亦然。

将迭代进程变量和种群多样性变量作为模糊推理系统的两个输入,并将种群多样性变量通过归一化处理将其值落入[0, 1]之间,设计如图 2所示的两个隶属度函数。迭代进程变量由5个隶属度函数划分为早期(Early)、早中期(Early medium)、中期(Medium)、中晚期(Medium late)和晚期(Late)。而种群多样性变量由3个隶属度函数划分为低多样性(Low)、中多样性(Medium)和高多样性(High)。

图 2 输入量隶属度函数 Fig. 2 Membership functions of input variables

模糊推理系统的输出变量领导者种群占比由隶属度函数划分为较小(Very small)、小(Small)、中等(Medium)、大(Big)和较大(Very big),5个隶属度函数分别用于表示输出量领导者种群占比的大小,如图 3所示。

图 3 输出量隶属度函数 Fig. 3 Membership function of output variable

结合两个系统输入变量对领导者种群占比进行选择,还需设计相应的IF-THEN模糊规则。表 1为该模糊推理系统的模糊规则,以第2行第2列所示规则为例,具体模糊规则可解释为“IF iter is Early me-dium and div is Medium, THEN leader is Medium”。在设计模糊规则过程中,在迭代早期,应尽可能扩大搜索范围,赋予较大占比的领导者种群规模,增强领导者的引领作用,以实现全局搜索。随着迭代的进行,算法应逐步转入小范围局部开发,此时应减小领导者规模,以较大追随者占比提高局部开发的精度。同时,迭代过程中若种群多样性逐步缺失,种群趋于早熟收敛,也应在局部开发过程中提高领导者占比,以丰富种群多样性;而在种群多样性较好时,则可以相应减小领导者的种群占比。-

表 1 IF-THEN模糊规则 Table 1 IF-THEN fuzzy rules
迭代进程
Iterative process
种群多样性
Population diversity

Low

Medium

High
Early Very big Very big Big
Early medium Very big Medium Small
Medium Big Small Big
Medium late Medium Small Very small
Late Medium Small Very small

结合IF-THEN模糊规则,经过去模糊化即可得到模糊推理系统的输出领导者占比,如图 4所示。在两个输入变量迭代进程和种群多样性的作用下,领导者的种群占比可动态调整,使得算法在迭代前后期以更强的搜索和开发性能搜索最优解。

图 4 输出变量领导者占比的变化趋势 Fig. 4 Change trend of leader population proportion in output variable

1.2.2 模糊逻辑收敛因子调整机制

为了在不同的迭代阶段对两个收敛因子进行非线性调节,引入模糊逻辑使收敛因子能够根据算法的迭代进程和个体适应度误差情况进行自适应调整。

为了计算收敛因子的取值,设置模糊推理系统的输入变量为迭代进程和适应度误差。引入适应度误差作为模糊系统输入因子之一的原因在于,迭代过程中,若个体与最优解适应度相差较大,则应相应优化控制种群全局搜索与局部开发的比例,以此控制个体向最优解的递进程度。迭代进程计算方式同公式(10)。适应度误差变量err定义为

$ e r r=\frac{1}{N} \sum\limits_{i=1}^N\left(f i t\left(X_i\right)-f i t_{\min }\right) , $ (12)

式中,N为种群个体总数,fit(Xi)为个体i的适应度,fitmin为当前最优适应度。可见,适应度误差变量可用于度量每个个体适应度与最优个体间的差异性。

迭代进程的隶属度函数同图 2(a)。适应度误差的隶属度函数如图 5所示,适应度误差由3个隶属度函数划分为低误差(Low)、中等误差(Medium)和高误差(High)。

图 5 适应度误差隶属度函数 Fig. 5 Membership function of fitness error variable

由于收敛因子AB的原始取值范围分别为[0, 1]和[0, 2],故作为系统输出量时可以由隶属度函数划分为较小(Very small)、小(Small)、中等(Medium)、大(Big)和较大(Very big)5个阶段,如图 6所示。

图 6 收敛因子的隶属度函数 Fig. 6 Membership functions of convergence factors

结合两个系统输入变量对两个收敛因子AB进行选择,设计如表 2所示的IF-THEN模糊规则。

表 2 收敛因子IF-THEN模糊规则 Table 2 IF-THEN fuzzy rules of convergence factor
迭代进程
Iterative process
适应度误差
Fitness error

Low

Medium

High
Early Very big Very big Big
Early medium Big Medium Medium
Medium Medium Medium Small
Medium late Medium Small Very small
Late Very small Small Very small

结合表 2所示的模糊规则,经过去模糊化即可得到模糊推理系统的输出收敛因子,如图 7所示。在两个输入变量迭代进程和适应度误差的作用下,收敛因子可动态调整,实现收敛性的自适应平衡。

图 7 输出变量收敛因子的变化趋势 Fig. 7 Change trends of convergence factors in output variable

1.2.3 FCOOT的有效性验证

为了验证模型逻辑对COOT改进的有效性,利用一个单峰函数和两个高维多峰基准函数作为测试函数对FCOOT进行性能验证。单峰函数名称为Rosenbrock,表达式为

$ f_1(x)=\sum\limits_{i=1}^{n-1}\left[100\left(x_{i+1}-x_i\right)^2\right]+\left(x_i-1\right)^2, $ (13)

式中,xixi+1为两个相邻的变量,n为搜索空间的维度,搜索范围为[-30, 30],理论最优解为0。

一个高维多峰基准函数名称为Schwefel 2.26,表达式为

$ f_2(x)=418.983 n-\sum\limits_{i=1}^n x_i \sin \left(\sqrt{\left|x_i\right|}\right), $ (14)

式中,n为搜索空间的维度。该函数搜索范围为[-500, 500],理论最优解为0。

另一个高维多峰基准函数名称为Schwefel,表达式为

$ f_3(x)=-\sum\limits_{i=1}^n\left(x_i \sin \sqrt{\left|x_i\right|}\right) , $ (15)

式中,n为搜索空间的维度。该函数搜索范围为[-500, 500],理论最优解为0。

图 8是Schwefel 2.26函数的三维空间图像。可见,该函数具有较多的局部极值点,极其考验算法的搜索精度以及能否有效跳离局部极值点的能力。

图 8 Schwefel 2.26函数的三维空间图像 Fig. 8 Function 3D image of Schwefel 2.26

设置种群规模N=30,最大迭代次数Tmax=400,领导者种群的初始占比设置为72%,两个收敛因子的初始值分别设置为A=1、B=2。利用FCOOT搜索测试函数f(x)的最优解,并与COOT进行比较,验证模糊逻辑机制改进COOT性能的可行性。同时,将仅融合模糊逻辑领导者种群占比调整机制的COOT命名为FCOOT1,仅融合模糊逻辑收敛因子调整机制的COOT算法命名为FCOOT2,引入这两个子算法进行消融实验对比,验证单策略改进的性能。表 3是COOT、FCOOT1、FCOOT2和FCOOT在Rosenbrock函数、Schwefel 2.26函数和Schwefel函数上的最优解、平均值以及标准差上的对比结果,其中平均值为算法独立运行10次后的均值结果。这4种算法在Schwefel 2.26函数上的收敛性对比结果如图 9所示。可见,FCOOT1和FCOOT均能找到函数最优解,FCOOT2虽然没有找到最优解,但其搜索精度比COOT高出若干数量级。相比而言,模糊逻辑领导者种群占比调整机制比模糊逻辑收敛因子调整机制更能提高算法的搜索精度,前者比后者在目标函数平均值上可以提高15个数量级。从收敛性看,FCOOT能够最快提高搜索精度,接近最优解,COOT则在迭代过程中处于比较平缓的状态,说明其种群个体进化比较慢,且最后收敛于局部最优。

表 3 不同算法的函数测试结果 Table 3 Function test results of different test algorithms
测试函数
Test function
测试算法
Test algorithm
最优解
Best
平均值
Mean
标准差
Standard deviation
Rosenbrock COOT 4.12E-01 4.08E-01 3.19E-01
FCOOT1 3.96E-03 4.39E-03 6.63E-04
FCOOT2 1.36E-03 1.95E-03 3.81E-03
FCOOT 2.36E-09 2.70E-09 5.39E-08
Schwefel 2.26 COOT 7.23E-55 1.84E-32 6.01E-29
FCOOT1 0.00E+00 5.38E-100 5.32E-76
FCOOT2 5.38E-103 8.49E-85 4.57E-34
FCOOT 0.00E+00 3.43E-111 1.01E-98
Schwefel COOT 2.48E-12 4.77E-12 3.05E-12
FCOOT1 4.03E-19 5.57E-19 3.28E-20
FCOOT2 3.92E-23 4.69E-23 8.01E-22
FCOOT 0.00E+00 0.00E+00 1.03E-36

图 9 算法收敛曲线 Fig. 9 Algorithm convergence curve

2 FCOOTKHM 2.1 KHM聚类算法

不同于KM聚类算法,KHM聚类算法以调和平均值作为距离度量方式进行簇群划分,具有比KM聚类算法更快的收敛速度。同时,KHM聚类算法不存在对初始聚类质心敏感的不足,但依然存在易陷入局部最优的缺陷。KHM聚类目标函数可定义为

$ \operatorname{KHM}(Z, C)=\sum\limits_{i=1}^n \frac{k}{\sum_{j=1}^k \frac{1}{\left\|z_i-c_j\right\|^p}}, $ (16)

式中,n为数据对象总数,k为质心数量,p为指数,zi为数据集Z=(z1, z2, …, zn)内的一个数据矢量iC=(c1, c2, …, ck)为聚类质心集,cj为聚类质心j。KHM聚类过程为

步骤1:在D维搜索空间内随机选择k个聚类质心。

步骤2:根据公式(16)计算目标函数值。

步骤3:对于每个数据点对象xi,计算xi在每个聚类质心内的隶属度m(cj\xi),计算公式为

$ m\left(c_j \backslash x_i\right)=\frac{\left\|x_i-c_j\right\|^{(-p-2)}}{\sum_{j=1}^k\left\|x_i-c_j\right\|^{(-p-2)}}, $ (17)

同时,计算数据对象xi在聚类质心内的权重值w(xi)

$ w\left(x_i\right)=\frac{\sum_{j=1}^k\left\|x_i-c_j\right\|^{(-p-2)}}{\left(\sum_{j=1}^k\left\|x_i-c_j\right\|^{-p}\right)^2}。$ (18)

步骤4:对于每个聚类质心,根据其隶属度和权重函数重新计算数据点对象xi的聚类质心为

$ c_j=\frac{\sum_{i=1}^n m\left(x_j / x_i\right) w\left(x_i\right) x_i}{\sum_{i=1}^n m\left(x_j / x_i\right) w\left(x_i\right)} 。$ (19)

步骤5:重复步骤2至步骤4直到聚类质心无变化或到达最大迭代次数为止。

步骤6:将数据矢量xi重新分配至具有最大隶属度的聚类质心j

2.2 FCOOTKHM设计

本文设计一种FCOOT结合KHM聚类算法的聚类算法FCOOTKHM。该算法融合了KHM聚类算法的局部开发能力和FCOOT强大的全局搜索能力,将KHM聚类算法的初始聚类结果输入FCOOT,作为算法的初始种群结构,并通过白骨顶鸡觅食的迭代机制,结合模糊逻辑实现全局寻优,有效避免局部最优,防止聚类解出现早熟收敛状态。构建算法的具体步骤如下。

步骤1:初始化算法参数,包括种群规模N、KHM聚类最大迭代次数KTmax、FCOOT最大迭代次数Tmax

步骤2:随机选择K个聚类质心,执行KHM聚类迭代过程,生成初始聚类解。

步骤3:将步骤2生成的初始聚类解选为聚类质心作为FCOOT的初始种群结构,即将聚类质心编码为白骨顶鸡个体位置信息。

步骤4:利用模糊逻辑机制决定领导者种群占比,并随机选择领导者个体,利用KHM聚类目标函数KHM(X, C)计算个体适应度,确定全局最优解gBest。

步骤5:确定种群个体角色,对于领导者个体,利用模糊逻辑更新收敛因子B,根据公式(8)更新领导者位置。

步骤6:对于跟随者个体,利用模糊逻辑更新收敛因子A,若跟随者进行主动更新,生成一个(0, 1)间随机量rand,若rand<0.5,则根据公式(3)更新位置;反之,则根据公式(5)更新位置。被动更新时则根据公式(6)确定其跟随的领导者个体,再根据公式(7)更新位置。

步骤7:计算种群个体适应度,并择优保留。具体地,对于适应度更优的跟随者,则互换其领导者与跟随者角色。

步骤8:判断是否达到FCOOT最大迭代次数,如未达到,则返回步骤4执行;否则,输出此时全局最优解,算法终止。

3 实验与结果分析 3.1 实验数据

利用UCI数据库中7个典型数据集进行算法实验测试,表 4给出了每个数据集的规模、类别及其特征属性。7个数据集同时涵盖有中小维度、中小样本量和较大维度及大容量样本集,利于全面测试算法处理不同规模不同特征维度数据集的性能。以中小维度小样本量的Iris(鸢尾花)数据集为例,该数据集包含3个鸢尾花品种:Setosa、Versicolour和Virginica,每个种类鸢尾花有50个样本数据,总共有150个对象实例,数据集中有花萼长、花萼宽、花瓣长和花瓣宽4个特征。实验运行环境为Windows 10,软件为Pycharm 2022。算法参数中,种群规模N=30,KHM聚类最大迭代次数KTmax=100,FCOOT最大迭代次数Tmax=400,领导者种群初始占比设置为72%,两个收敛因子的初始值分别设置为A=1、B=2。

表 4 测试数据集 Table 4 Test datasets
数据集
Dataset
分类数量
Number of classes
特征数量
Number of charac-teristics
数据量
Data volume
各分类样本尺寸
Sample size per class
Iris 3 4 150 50, 50, 50
Glass 6 9 214 70, 17, 76, 13, 9, 29
Cancer 2 9 683 444, 239
CMC 3 9 1 473 629, 334, 510
Wine 3 13 178 59, 71, 48
Synthetic1 3 2 300 100, 100, 100
Synthetic2 3 3 300 100, 100, 100

3.2 评估指标

选择KHM聚类算法(以下简称为“KHM”)[4]、引力搜索K均值(Gravitational Search Algorithm K-Means,GSAKM)算法[7]、粒子群优化K调和均值(Particle Swarm Optimization K-Harmonic Means,PSOKHM)算法[10]以及COOTKHM[17]与FCOOTKHM进行实验的纵横向对比。选择KHM的目标函数KHM(X, C)作为聚类指标用于度量聚类质量,该函数相当于数据对象与质心的距离函数,两者距离越小,表明聚类质量越高。引入准确率(Accuracy)、精确度(Precision)、召回率(Recall)、F度量(F-measure)以及Kappa系数进行具体量化比较。同时可通过计算迭代过程中聚类解的适度值描述算法的收敛情况,来评估聚类算法的收敛速度及收敛精度。为了消除偶然性因素影响,将算法执行20次并取其均值结果进行比较。

准确率指标定义为

$ \text { Accuracy }=\sum\limits_{k=1}^K \frac{n_k}{n} , $ (20)

式中,K为聚类数量,nk为正确划入聚类k的样本数,n为样本总数。

精确度指标定义为

$ \text { Precision }=\frac{Q_{\mathrm{TP}}}{Q_{\mathrm{TP}}+Q_{\mathrm{FP}}}, $ (21)

式中,QTP为真正类,QFP为假正类,该指标即为实际划入聚类的样本占比。

召回率指标定义为

$ \text { Recall }=\frac{Q_{\mathrm{TP}}}{Q_{\mathrm{TP}}+Q_{\mathrm{FN}}}, $ (22)

式中,QFN为假负类。

F度量指标定义为

$ \mathrm{F} \text {-measure }=\frac{2 \text { Recall } \times \text { Precision }}{\text { Recall }+ \text { Precision }}。$ (23)

Kappa系数指标定义为

$ \text { Kappa }=\frac{\left(p_0-p_e\right)}{\left(1-p_e\right)}, $ (24)

式中,p0为观测一致率,pe为期望一致率。

3.3 实验结果

表 5是算法在所有指标上的结果,表 5中的加粗部分表示该指标在算法中的最优解。总体看,FCOOTKHM在多数数据集上能够得到算法的最优解,尤其对于分类比较明确的数据集,如Wine数据集和Cancer数据集,聚类的准确率、精确度和Kappa系数都具有较大的优势。在Wine数据集上,与KHM和COOTKHM相比,FCOOTKHM的准确率、精确度和Kappa系数分别提升了13.88%、12.12%、6.49%和8.20%、1.57%、1.98%。即使在特征维度有所增加以及样本量较大的CMC数据集中,FCOOTKHM依然表现出与对比模型更强的聚类性能,这表明模糊逻辑对于改进算法的搜索能力也是有效可行的。F度量可以用于均衡精确度和召回率两个指标,生成综合评价。FCOOTKHM的F度量指标在多数情况下也是最优的,表明该算法能够在模糊逻辑机制下生成更符合数据集实际分布特征的聚类结果。

表 5 不同算法的聚类指标结果 Table 5 Cluster index results of different algorithms
数据集
Dataset
算法
Algorithm
聚类指标
Cluster index
准确率
Accuracy
精确度
Precision
召回率
Recall
F度量
F-measure
Kappa系数
Kappa coefficient
Iris KHM 0.852 5 0.858 5 0.880 2 0.865 4 0.698 4
GSAKM 0.860 9 0.882 6 0.685 7 0.871 1 0.703 7
PSOKHM 0.881 2 0.881 5 0.894 6 0.883 7 0.715 3
COOTKHM 0.918 4 0.918 2 0.901 1 0.890 8 0.793 7
FCOOTKHM 0.946 2 0.945 8 0.906 9 0.908 3 0.874 6
Glass KHM 0.689 2 0.713 5 0.792 4 0.883 6 0.342 1
GSAKM 0.696 5 0.720 2 0.805 6 0.895 3 0.359 8
PSOKHM 0.796 3 0.727 5 0.806 7 0.863 5 0.362 7
COOTKHM 0.723 1 0.735 8 0.830 1 0.895 6 0.458 3
FCOOTKHM 0.794 5 0.793 7 0.857 6 0.908 7 0.473 6
Cancer KHM 0.540 9 0.557 8 0.543 8 0.576 8 0.228 4
GSAKM 0.556 7 0.522 4 0.516 7 0.523 3 0.238 5
PSOKHM 0.599 6 0.575 8 0.528 7 0.550 4 0.284 7
COOTKHM 0.586 7 0.584 9 0.587 2 0.584 6 0.302 8
FCOOTKHM 0.697 3 0.608 3 0.608 7 0.593 8 0.324 7
CMC KHM 0.477 2 0.487 3 0.490 4 0.478 2 0.511 2
GSAKM 0.494 6 0.515 4 0.690 8 0.490 4 0.583 2
PSOKHM 0.508 7 0.538 5 0.509 8 0.534 2 0.598 3
COOTKHM 0.519 2 0.575 4 0.535 7 0.564 7 0.694 8
FCOOTKHM 0.583 7 0.673 4 0.679 2 0.746 4 0.782 7
Wine KHM 0.573 6 0.526 5 0.472 4 0.503 9 0.632 2
GSAKM 0.580 9 0.534 8 0.479 8 0.527 8 0.647 0
PSOKHM 0.581 6 0.562 5 0.498 3 0.537 4 0.652 8
COOTKHM 0.603 7 0.581 2 0.500 3 0.536 7 0.660 1
FCOOTKHM 0.653 2 0.590 3 0.527 1 0.573 6 0.673 2
Synthetic1 KHM 0.285 7 0.284 7 0.290 8 0.308 2 0.573 6
GSAKM 0.307 5 0.311 6 0.340 2 0.349 2 0.609 8
PSOKHM 0.415 2 0.373 4 0.387 3 0.395 8 0.676 3
COOTKHM 0.393 0 0.383 7 0.3847 0.438 2 0.702 9
FCOOTKHM 0.402 3 0.457 2 0.394 5 0.583 7 0.782 7
Synthetic2 KHM 0.453 7 0.468 7 0.431 6 0.420 9 0.783 7
GSAKM 0.495 0 0.503 4 0.470 5 0.451 1 0.793 2
PSOKHM 0.501 9 0.513 4 0.490 5 0.503 8 0.805 8
COOTKHM 0.574 1 0.594 5 0.474 9 0.592 1 0.872 2
FCOOTKHM 0.604 8 0.608 2 0.573 8 0.676 3 0.892 7
Note: the bolded data in the table indicate the optimal solution of the algorithm.

选取Iris、Glass和CMC这3个数据集,直观比较算法在搜索目标函数KHM(X, C)最优解时的收敛性情况,结果如图 10所示。首先,从最终收敛处得到的目标适应度看,FCOOTKHM是所有算法中最小的,说明其生成的聚类能够使得每个数据对象均加入到最优的质心之中,从而最大化相同分类中数据的相似性。从搜索到最优解的收敛迭代次数看,FCOOTKHM的收敛迭代次数也是最少的,说明模糊逻辑能够加快模型的搜索速度,快速地提高模型的聚类精度。利用模糊逻辑对种群领导者占比和收敛因子进行自适应调整,能够提高算法跳离局部最优的概率,加快种群个体搜索的收敛速度,有效预防算法在局部极值处的长期震荡。由此可见,本文在KHM中融入FCOOT的策略在提升算法收敛精度和收敛速度上均是有效可行的。

图 10 算法收敛性能 Fig. 10 Algorithm convergence performance

KHM(X, C)侧重于类内数据的聚合效果,在此进一步引入粗糙集聚类指标距离比值h比较算法性能。该比值为各类内对象到整个数据中心的分布距离与类内对象距离之比,定义为

$ h=\frac{\sum_{i=1}^K \sum_{j=1}^{\left|C_i\right|}\left|x_{i j}-m\right|^2}{\sum_{i=1}^K \sum_{j=1}^{\left|C_i\right|}\left|x_{i j}-m_i\right|^2}, $ (25)

式中,K为聚类数,|Ci|为聚类i对象数量,mi为聚类Ci的质心,xij为聚类i的对象jm为整个数据对象中心,定义为

$ m=\sum\limits_{i=1}^K \sum\limits_{j=1}^H x_{i j} / H , $ (26)

式中,H为数据对象总数。根据h的定义可知,相同聚类内数据对象分布越紧凑,距离越小;而不同聚类内数据对象越离散,则其到整个数据中心的距离越大。这表明距离比值h越大,算法的聚类性能越好。

图 11是5种对比算法得到的距离比值结果。可见,FCOOTKHM能够在各个数据集上得到更好的聚类效果,也更加符合数据的分布特征。

图 11 距离比值指标 Fig. 11 Distance ratio index

综合以上结论可知,在不同特征维度和样本模型数据集测试下,FCOOTKHM无论是聚类指标还是迭代效率方面均具有更好的性能优势,且聚类准确率更高,实现了聚类内数据高度紧凑相似,聚类间数据充分离散分布。这也说明将模糊逻辑融入COOT并以其优化KHM的思路是切实可行的,算法通过模糊推理系统对COOT的收敛因子和领导者种群占比进行自适应调整,以此提升算法的全局寻优能力,并结合KHM聚类算法搜索最优的聚类质心。

4 结论

本文提出了一种结合模糊逻辑COOT优化KHM的数据聚类算法(FCOOTKHM)。在COOT中引入模糊逻辑机制对算法收敛因子和领导者种群占比进行自适应调整,从而提升算法搜索和开发能力。同时,将KHM聚类初始解作为改进算法的初始种群组成,结合KHM的快速局部开发能力和COOT的全局勘探能力对聚类解迭代寻优,解决KHM易陷入局部最优的不足。数据集测试结果表明,改进算法聚类性能无论是稳定性还是全局收敛性都得到了有效提升。未来研究可集中在算法搜索精度的持续改进以及结合车联网大数据特征选择问题进一步优化聚类模型。

参考文献
[1]
GUO C, TANG H, NIU B. Evolutionary state-based novel multi-objective periodic bacterial foraging optimization algorithm for data clustering[J]. Expert Systems, 2022, 39(1): e12812. DOI:10.1111/exsy.12812
[2]
HOU Q, WANG G J, WANG X Z, et al. Research and application on spark clustering algorithm in campus big data analysis[J]. Journal of Computer Science Research, 2020, 2(1): 16-20. DOI:10.30564/jcsr.v2i1.1808
[3]
HARTIGAN J A, WONG M A. Algorithm AS 136:a K-means clustering algorithm[J]. Journal of the Royal Statistical Society Series C (Applied Statistics), 1979, 28(1): 100-108.
[4]
张文宇, 张茜, 杨媛, 等. 基于改进GWO-CV优化的K-调和均值聚类算法[J]. 统计与决策, 2020, 36(16): 9-13.
[5]
IKOTUN A M, ALMUTARI M S, EZUGWU A E. K-means-based nature-inspired metaheuristic algorithms for automatic data clustering problems: recent advances and future directions[J]. Applied Sciences, 2021, 11(23): 11246. DOI:10.3390/app112311246
[6]
王永刚, 李靖, 王文慧, 等. 基于和声搜索机制的特征选择与文本聚类分析[J]. 计算机工程与设计, 2022, 43(2): 472-478.
[7]
张雪峰, 杜孝平, 王晓健, 等. 基于引力搜索机制的数据聚类及特征选择算法[J]. 计算机工程与设计, 2021, 42(9): 2536-2544.
[8]
娄奥, 姚敏立, 袁丁. 基于GSA算法改进的K均值聚类[J]. 计算机工程与设计, 2020, 41(4): 1001-1005.
[9]
BABU S S, JAYASUDHA K. A simplex method-based bacterial colony optimization algorithm for data clustering analysis[J]. International Journal of Pattern Recognition and Artificial Intelligence, 2022, 36(12): 2259027. DOI:10.1142/S0218001422590273
[10]
LI Y, QI J F, CHU X Q, et al. Customer segmentation using K-means clustering and the hybrid particle swarm optimization algorithm[J]. The Computer Journal, 2023, 66(4): 941-962. DOI:10.1093/comjnl/bxab206
[11]
叶廷宇, 叶军, 王晖, 等. 结合人工蜂群优化的粗糙K-means聚类算法[J]. 计算机科学与探索, 2022, 16(8): 1923-1932.
[12]
王海玲, 杨俊杰. 基于改进蜂群算法及K均值聚类的WSN分簇路由算法[J]. 计算机应用与软件, 2022, 39(9): 178-182, 232. DOI:10.3969/j.issn.1000-386x.2022.09.026
[13]
JIN Q B, LIN N, ZHANG Y M. K-means clustering algorithm based on chaotic adaptive artificial bee colony[J]. Algorithms, 2021, 14(2): 53. DOI:10.3390/a14020053
[14]
CHEN X J, ZHAO J, JIA X Z, et al. Multi-step wind speed forecast based on sample clustering and an optimized hybrid system[J]. Renewable Energy, 2021, 165: 595-611. DOI:10.1016/j.renene.2020.11.038
[15]
李兆彬, 叶军, 周浩岩, 等. 变异萤火虫优化的粗糙K-均值聚类算法[J]. 山东大学学报(工学版), 2023, 53(4): 74-82.
[16]
巨金香, 张福泉, 黄锐. 基于烟花算法优化k均值聚类的教学质量评估模型[J]. 济南大学学报(自然科学版), 2022, 36(6): 755-760.
[17]
NARUEI I, KEYNIA F. A new optimization method based on COOT bird natural life model[J]. Expert Systems with Applications, 2021, 183: 115352. DOI:10.1016/j.eswa.2021.115352
[18]
MEMARZADEH G, KEYNIA F. A new optimal energy storage system model for wind power producers based on long short term memory and coot bird search algorithm[J]. Journal of Energy Storage, 2021, 44: 103401. DOI:10.1016/j.est.2021.103401
[19]
KURAN E C, KURAN U, ER M B. Sub-image histogram equalization using coot optimization algorithm for segmentation and parameter selection [C]// Academy and Industry Research Collaboration Center (AIRCC). Computer Science & Information Technology (CS & IT). Vancouver: [s. n. ], 2022: 33-46.
[20]
VALDEZ F, CASTILLO O, PERAZA C. Fuzzy logic in dynamic parameter adaptation of harmony search optimization for benchmark functions and fuzzy controllers[J]. International Journal of Fuzzy Systems, 2020, 22(4): 1198-1211. DOI:10.1007/s40815-020-00860-7