仿生聚类算法研究与分析
2022-07-04田云娜赵彦霖赵彭丽韩小颖
田云娜,赵彦霖,刘 雪,赵彭丽,韩小颖
(延安大学数学与计算机科学学院,陕西延安 716000)
在当前信息时代,随着信息处理技术、数据库技术的日益完善,数据的收集和生成频繁发生。人们虽然能够轻松存储和共享大量的数据,但在日益增长的海量数据中要提取到有用的信息也变得越来越难。为了能从大量、复杂、模糊的数据中提取到有价值的信息,因此迫切需要一种方法能够将这些信息智能地转化为有价值的知识与信息,从而促进了数据挖掘(Date mining,DM)的出现,而聚类正是数据挖掘的四项基本任务之一[1]。聚类是指将数据、结果等进行无监督地分类,把属性相似的个体归为同个簇中。聚类的目标是将数据集分组到簇中,以便同一聚类中的样本对象差异最为相似,且不同簇中对象之间的相似性最小化。聚类作为极其受欢迎的无监督学习方法之一,在数据挖掘、人工智能、统计学等领域都起到很重要的作用。
传统的聚类方法大致可分为划分聚类、密度聚类、层次聚类、网格聚类和模型聚类等[2]。基于划分聚类方法用某种划分方法将所有数据对象归纳入不同的聚类中心;基于密度聚类方法会按照数据集的密度分布对数据进行划分,比如依靠高密度点将数据对象聚于簇中,其计算量小于基于距离的聚类算法,通常这种方式只能发现球状的簇;基于层次聚类方法将数据对象进行层次的分解,主要分为分裂式和凝聚式,适用于任意形状和属性的数据集,但同时也额外增加了算法的执行时间;基于网格聚类方法将数据对象映射到被划分为有限数目的网格空间中,与数据对象的数目及输入顺序无关,对所形成的网格空间加以聚类,可处理任意类型的数据;基于模型聚类方法先将每个聚类设置为一种例证,然后寻找可以相似例证条件的数据集,算法易于理解但效率并不高。
常见的划分聚类算法有K均值聚类(K-Means)[3]、K-中心点聚类(K-Medoids Clustering)[4]、CLARANS(Clustering Large Applications based on RANdomized Search)[5];密度聚类算法有DBSCAN(Density-Based Spatial Clustering of Applications with Noise)[6]、OPTICS(Ordering Points To Identify the Clustering Structure)[7]、DENCLUE(Density Clustering)[8];层次聚类算法有AGNES(Agglomerative Nesting)[9]、BIRCH(Blanced Iterative Reducing and Clustering)[10]、CURE(Clustering Using Representative)[11];网 格 聚 类 算 法 有STING(Statistical Information Grid-Based Methods)[12]、WaveCluster(Wave-Cluster)[13]、CLIQUE(Clustering In Quest)[14];模型聚类算法有自组织神经网络算法(Self-Organizing Map,SOM)[15]、期望最大化算法(Expectation-maximization,EM)[16]。由于聚类方法的不同,这些算法的聚类效果和计算性能也各有不同。比如K-Means 算法处理数据集相对简单高效,但需要事先给定k 值,算法受初始值k 设置影响大,对噪声点异常敏感;K-Medoids 具有很强的鲁棒性,受噪声点影响较低,但受初始值k设置影响大,不适合处理大规模数据集;DBSCAN 可以发现任何形状的簇,聚类结果受噪声点影响小,对初始参数设置较为敏感;DENCLUE 可发现任意形状的簇,受噪声点影响低,但计算复杂度较高,不适合处理大型数据集;AGNES 不需要提前设置聚类数,距离与相似度容易定义,不受初始样本形状影响,但不适合大数据集聚类;BIRCH 处理数据速度快,适用于大数据聚类,但确定合适的变量参数较为困难;CURE 属于凝聚层次聚类,对噪声异常点不敏感,可以发现任何形状的簇,适合大数据集聚类;STING计算成本低,处理数据速度极快,但降低了聚类结果的准确度;WaveCluster 可处理大型数据集,不受初始样本形状影响,受噪声点影响低,但对某两类无明显边缘的数据集聚类效果较差;CLIQUE 对输入数据顺序不敏感,对输入数据维数变化有较好的伸缩性,但聚类结果的精确度有所下降;SOM 聚类时间复杂度低,但聚类精确性不高,需要预先设置k 值,不适合处理大数据集;EM属于K-均值算法的扩展,适用于大数据集,对噪声非常敏感,需要预先设置k值且聚类精度不高。可以看出,每个聚类算法都有独特的优势和不足,对算法的使用要依据不同的问题进行选择。研究者们根据各类算法的特点,将其应用于各种适用领域,如计算机科学、图像处理、物联网、生物信息学、医学等领域。
随着信息社会的不断发展,面对复杂而多样的数据,传统聚类算法对问题的适用场景依赖性较强,在求解高难度聚类任务时出现了聚类效果差、效率低下等问题,已经无法满足多层次、高维度、大批量数据的聚类需求。为了从复杂且庞大的数据信息中发掘出人们所需要的价值,学者们不断改进传统聚类的方式。
伴随群智能(仿生)算法的持续研究与聚类任务难度不断加大,研究者们在改进聚类的过程中引入了操作简单、求解速度快、易与传统聚类算法结合的仿生聚类(Bionic Clustering,BC)算法。BC 是在群智能算法与基础聚类算法的基础上进行改进的混合聚类优化算法,它主要针对不同的聚类任务,先进行聚类分析,然后模拟自然界的生物行为,灵活地将仿生算法的优势与基本聚类算法结合,从而优化聚类过程得到更好的聚类结果。这种算法在实现的过程保留了仿生算法的灵活性、自组织性、稳健性、分布性等特点,同时继承了基本聚类算法的功能优势,使得复杂的聚类问题变得简单高效。尽管部分群智能算法(仿生)算法与基础聚类算法均可单独实现某种聚类任务,但面对高维度复杂情况下的聚类任务时,其聚类效果有所欠缺。
近年来,得益于仿生算法简单、智能、易结合的优势,基于仿生算法与基本聚类算法结合的仿生聚类逐渐兴起,受到了很多研究者的关注。2009 年,CHENG 等[17]提出2 种改进人工鱼群聚类优化算法,引入鱼群吞食行为思想,分别结合了模糊C均值聚类(Fuzzy C-means,FCM)模型与硬C 均值聚类(Hardc-means,HCM)模型,通过实验对比验证该算法可以减少孤立点和初始参数设置对聚类结果的影响,降低算法的复杂度。2011年,FANG等[18]通过模拟青蛙跳跃对K-Means 参数优化,大幅提高了对文本聚类的准确率。2013 年,SOOD 等[19]提出了组合K-Medoids 的蝙蝠聚类算法,算法模仿蝙蝠回声定位,解决了在大型数据集中选择初始聚类对象困难的问题。2014 年,SAIDA 等[20]根据布谷鸟产卵寄生的生物行为,提出了易实现、参数较少的布谷鸟聚类算法,并对多个数据集聚类,验证了该算法在解决数据聚类问题上的有效性。2015年,LI等[21]通过模拟鸟类捕食行为,用改进学习因子与动态权值的粒子群算法结合K-Means 提出了新的粒子群聚类算法,并在图像分割问题中提高了图像质量和分割效率。2016年,闫婷等[22]利用细菌觅食结合粒子群优化,改进了K-Means 聚类中心的选取方式,通过3种不同的数据集证明了该算法对数据聚类结果的有效性。2018 年,TRIPATHI 等[23]制定了一种灰狼狩猎策略与二项式交叉混合的灰狼聚类算法,通过多个规模的数据集验证了该算法在处理大型合成数据集的高效性。2019 年,HROSIK 等[24]根据萤火虫群体之间觅食行为,提出了结合K-Means 思想的萤火虫聚类算法将其应用在脑图像分割问题中。2020 年,SING 等[25]模仿猫的追踪和寻找模式提出了猫群聚类算法,该算法引入邻域搜索策略提高了算法的收敛速度,在8个数据集上进行测试,证实该算法具有较高的聚类效果。郑洪清等[26]模拟蝴蝶觅食行为,提出了一种改进蝴蝶局部搜索方式的蝴蝶聚类算法,在6种数据集上进行对比测试,验证了该算法的鲁棒性和收敛速度。THALAMALA 等[27]提出3种模拟蜘蛛社交行为与K-Means结合的聚类算法,在6种数据集上进行对比测试,证明所提出算法具有较精确的聚类结果。2021年,余晓兰等[28]模拟鸡群觅食行为结合FCM,提出了动态模糊鸡群聚类算法,通过路径规划实例,证明了该算法运行速度快、收敛精度高。
可以看出,关于BC 的研究不但是群智能算法与基础聚类算法思想的结合,同时还可以通过群智能算法优化聚类方法的参数。BC 的出现为求解结构复杂、大规模、多样化的聚类任务提供了高效、易实现、思想简单的方法,在物联网[18]、图像处理[21,24]、路径规划[28]等领域数据处理都表现出很好的聚类效果。
本文主要对现有3种具有代表性的仿生聚类算法进行研究分析,首先分别以蚁群聚类、果蝇聚类、人工蜂群聚类为案例,介绍仿生聚类算法的思想、与K-Means 聚类的结合流程及其应用情况;然后对聚类过程中的相似性度量和无监督评价方法进行了详细介绍;最后对仿生聚类未来的研究方向做了结论与展望。
1 代表性仿生聚类算法
本节主要介绍3 种具有代表性的仿生聚类算法,分别是典型的蚁群聚类、搜索效率高的果蝇聚类和深度搜索能力较强的人工蜂群聚类算法。
1.1 蚁群聚类算法
蚁群聚类是受蚂蚁自然行为启发的聚类算法,主要有蚂蚁堆积尸体和蚂蚁觅食行为。由于蚁群自然行为较为接近实际聚类问题,因此衍生出大量的蚁群聚类算法。蚁群聚类鲁棒性较强,适合处理海量数据,和其他聚类算法相比在复杂优化问题上表现出巨大的发展潜力和优势。
1.1.1 蚁群聚类算法仿生思想
生物学家研究蚂蚁这类视盲生物如何做到有条不紊地进行觅食、清洁巢穴堆积尸体等行为。通过观察后发现蚂蚁之间信息的传递是根据一种通信媒介而传递,即信息素。
1)蚁堆形成
在1991 年,由DENEUBOURG 提出了最早的蚁群聚类BM 模型[29]。主要思想是把数据对象模拟工蚁搬运亡蚁聚集成亡蚁堆,越小的亡蚁堆对于工蚁吸引力越大,从而将亡蚁抬起后放入其中。
在基于密度聚类下的蚁群聚类算法中[30-31],令数据对象随机投影在与数据集成比例的Z×Z 二维面中,设参数相异度比例为α,α 设置太小不利于数据对象的聚合;α 设置太大会导致不同簇的数据混合,样本区分不明显。蚂蚁在r 位置的观测区域为s× s。若发现了对象Oi,则Oi与其他对象Oj的距离为d。那么与Oi周围对象的相似度(fO)i公式为
在算法中,每次蚂蚁抬起或是放下搬运对象的概率都会受到相似度的影响,相似度越大则越不易运走,抬起、放下的概率计算公式表示为
其中k1、k2皆是阈值常数。
2)蚂蚁觅食
蚂蚁觅食也是一个模仿蚂蚁自然行为的聚类。当蚂蚁从i 点到达j 点时,蚂蚁会在行进过的道路d(i,j)上留下信息素。当蚂蚁经过同一条道路的次数越多,该路上的信息素浓度就越大。蚂蚁趋向于信息素浓度大的道路,与此同时路径上的信息素还会按一定程度进行挥发。
数据对象聚类于某一簇中的概率表示为
其中,τ 为信息素含量,η 为启发信息通常用欧拉距离的倒数表示,α、β 为控制参数常量。信息素的更新公式表示为
其中,ρ 为挥发系数,Q 为常数,dij为i 点与j 点间的距离。
1.1.2 与K-Means结合的蚁群聚类算法案例
蚁群聚类主要模拟蚁堆形成和寻觅食物2 种蚂蚁生物行为。其中蚁堆形成聚类(Lumer and Faieta,LF)[32]在实际应用中容易造成资源浪费、收敛慢以及易陷入局部最优的缺点。与K-Means 分层结合后避免了资源浪费,降低了K-Means 初始参数的敏感性,大大提高算法效率的同时保证避免陷入局部最优[33]。另外,仅依靠蚂蚁产生信息素的蚁群聚类方法(ant colony clustering algorithm,ACCA)[34]存在聚类困难、低效等不足,与K-Means 结合后加快了收敛速度,使聚类结果更合理有效。
1)模仿蚁堆形成的蚁群聚类算法KMBLF(Kmeans algorithm based on Lumer and Faieta algorithm)
KMBLF算法模仿蚁堆形成的蚁群聚类算法,令数据对象随机投影在与数据集成比例的Z×Z 二维面中,数据对象不重叠,然后从二维网格面中随机挑选x 个数据位置,并在这些挑选的位置上产生新的对象作为工蚁用来搬运对象,如果工蚁在无搬运对象时随机游走发现了对象Oi,则会用(1)式进行相似度判断。蚂蚁拾取对象的条件为(2)式的值大于随机产生(0,1]的数,则拾起对象并对空载工蚁进行负载标记。负载的蚂蚁要想放下数据对象需要移动到无蚂蚁的地方,根据(1)式和(3)式计算放下数据对象的概率Pdown。若没放下则会继续向其他无蚂蚁的地方移动,若放下对象将进行空载标记。整个蚁群执行一次移动搬运对象后将部分数据对象进行聚类,得到一次初始蚁群聚类结果。通过前面的初始分割,仍然会有部分“自由数据”,比如工蚁正在搬运的数据对象以及尚未被蚂蚁遍历的对象,紧跟着用K-Means算法进行聚类。
算法的具体实现步骤如下:
步骤1:参数初始化,设置迭代次数Num,蚂蚁个数K,相异度比例为α,短期记忆L;
步骤2:令数据对象投影在二维面中,标识网格处无数据对象,标识蚂蚁均为负载;
步骤3:判断蚂蚁是否有负载,若是则进行步骤4,否则进行步骤8;
步骤4:随机为蚂蚁Ki选择位置pi;
步骤5:若pi处有对象则进行步骤6,否则返回步骤4;
步骤6:利用(1)式计算周围相似度,(2)式计算拾起概率,产生随机数;
步骤7:若随机数小于Pup(Oi),则拾起对象Oi并标识Ki负载,标识pi处无对象,否则返回步骤4;
步骤8:随机将蚂蚁Kj移动到位置pj;
步骤9:若pj处有对象则进行步骤10,否则返回步骤8;
步骤10:利用(1)式计算周围相似度,(3)式计算方下概率,产生随机数;
步骤11:若随机数大于Pdown(Oj),则放下对象Oj并标识Kj未负载,标识pi处有对象;
步骤12:经过一次LF 算法后,输出聚类结果k个小堆H1,H2,…,Hk;
步骤13:将步骤12 的k 用来当作K-Means 算法的参数输入,将步骤12每个小堆的中心当作初始聚类中心,用K-Means算法聚类;
步骤14:对堆H 进行层次聚类然后再进行KMeans算法;
步骤15:最大迭代次数或满足结束条件并输出最优解。
2)模仿蚂蚁觅食的蚁群聚类算法KMACCA(KMeans Ant Colony Clustering Algorithm)
KMACCA 的算法[35]通过利用拥有快速收敛特性的K-Means 算法对数据进行预处理,可以获得初始的聚类中心,再根据每个数据对象对各个聚类中心的初始距离进行信息素地分配。然后,利用蚁群算法将每个数据对象到各个聚类中心路径上不一样的信息素实施聚类操作。
KMACCA算法的具体实现步骤如下:
步骤1:参数初始化,随机从样本中挑选k 个数据作为初始聚类中心;
步骤2:进行K-Means 得到预处理的聚类中心和簇;
步骤3:依靠启发信息分配信息素给每个数据对象i到对应的聚类中心Cj;
步骤4:随机生成每个数据对象的转移参数,若满足转移条件则进行其他簇的转移,否则数据对象仍处于原来的簇中;
步骤5:单只蚂蚁经过全部样本点后,依靠目标函数得到新的聚类中心,保存最优解;
步骤6:遍历全部蚂蚁更新最优解并按(5)式更新信息素;
步骤7:达到最大迭代次数或满足结束条件并输出最优解,否则返回步骤2。
1.1.3 蚁群聚类算法的应用
在聚类分析应用中,蚁群算法不仅可以单独进行聚类研究还十分容易与其他聚类算法融合。以下列举了蚁群聚类算法的几个主要应用领域。
1)数据分析:JABBAR 等[36]改进了蚁群搜索局部邻域策略的蚁群聚类,将其应用在6 个不同标准数据集分析中。FAHY等[37]提出了一种抗噪性良好的蚁群聚类算法应用,将其在动态数据流聚类。GAO等[38]提出了较高精度和速度的数据组合机制抽象蚁群聚类算法,实现对3种不同数据集的划分。
2)物联网:EBADINEZHAD 等[39]考虑组织车辆节点的通信路径问题,将蚁群聚类框架应用在物联网中的车载通信拓扑结构中。ZOU 等[40]和XIAO等[41]为了提高数据传输,用改进蚁群聚类算法解决无线传感器网络路由问题,从而提高无线传感器服务质量。
3)交通运输:CHENG 等[42]利用蚁群聚类建立定位模型,开展了高速列车定位方面实时性和适应性研究。XU 等[43]提出耗时较少的蚁群聚类,将其应用在动态、可变的车辆路径问题。
此外,HOU 等[44]将蚁群聚类应用于多光谱图像检测,有效准确地识别了感染葡萄卷叶病的植株。BULUT等[45]利用模糊C-均值算法结合蚁群聚类,用于生物信息学种分析微阵列基因表达数据。LIAO等[46]提出了具有鲁棒性、高精度、耗时少的分层蚁群聚类算法,并将其应用于求解大规模旅行商问题。
1.2 果蝇聚类算法
果蝇聚类算法一般为改进参数的果蝇优化算法(Fruit Fly Optimization Algorithm,FOA)[47]与基础聚类算法结合使用,衍生新的聚类算法,保留着果蝇优化算法的简单、参数少、运行效率高等优点。
1.2.1 果蝇聚类算法的仿生思想
自然界的果蝇拥有着很强的嗅觉与视觉感知,觅食时并不是随机搜索,多数果蝇会朝着食物源或是味道浓度最大的方向前进。
设果蝇的初始位置为dstart(xstart,ystart),赋予果蝇搜索半径L与随机方向。果蝇个体位置更新公式表示为
式中,i表示第i个果蝇个体;(xi,yi)为更新坐标。由于食物源位置未知,因此将每个果蝇浓度判定值设置为该果蝇与原点的距离倒数Si,其计算方式表示为
依靠判断味道浓度的适应度函数Fitness function,保留最大的浓度最佳值Fitnessmax(Si)以及最优果蝇个体作为群体坐标。迭代最后味道浓度总和最大的最优果蝇个体便可视为聚类中心。
1.2.2 与K-Means结合的果蝇聚类算法案例
基于K-Means 对于初始的聚类中心比较敏感且容易陷入局部最优,文献[48]提出了一种以混合果蝇优化算法结合K-Means 的果蝇聚类算法(Fruit Fly Optimization Algorithm-K-Means,FOA-K),并通过实验验证了算法的有效性。
FOA-K算法通过FOA迭代一次搜索到最佳值,将最佳值的位置信息作为K-Means 的聚类中心并进行一次K-Means 聚类,得到新的聚类中心后再返回FOA,重复交替迭代执行FOA 和K-Means,直到满足输出条件。
FOA-K算法的具体实现步骤如下:
步骤1:参数初始化,分别设置最大迭代次数max_G,聚类中心数k,果蝇的最大种群数S;
步骤2:对样本数据任意抽取k个作为果蝇个体即K-Means初始聚类中心;
步骤3:执行K-Means 算法,K-Means 收敛后得到新的聚类中心;
步骤4:重新定义果蝇的初始位置;
步骤5:通过果蝇味道判定(7)式代入适应度函数,记录浓度最佳值Fitnessmax(Si)得到最优果蝇个体,其坐标作为果蝇群的初始果蝇群坐标;
步骤6:再次随机在初始果蝇群坐标周围生成果蝇,计算并记录最优个体与位置;
步骤7:判断最优个体是否改变,若改变则其将当前最优坐标作为果蝇群的初始果蝇群坐标;
步骤8:重复步骤3~7,直到迭代次数大于max_G,输出最优值。
1.2.3 果蝇聚类算法的应用
果蝇聚类算法经常以优化的果蝇算法与其他聚类算法结合,弥补果蝇算法的缺陷,又保留着简单、参数少、运行效率高等优势。以下列举了果蝇聚类算法被主要应用的几个领域。
1)图像分割:其中邓然然等[49]通过密度峰值聚类与自动调节果蝇步长相结合的果蝇聚类算法实现图像分割;孙立新等[50]利用模糊均值聚类结合改进果蝇步长的果蝇聚类算法实现图像分割;ZHU等[51]通过结合密度峰值的果蝇聚类对医学图像自适应分割。
2)数据分析:WANG 等[52]通过核模糊C 均值的果蝇聚类对电力负载特性数据进行分类;LEI 等[53]结合基因表达谱的果蝇聚类对蛋白质复合物进行识别;王丽婕等[54]结合数学形态学的果蝇聚类算法对风力发电数据聚类,预测了依兰风电场的风电功率。
3)物联网:WANG等[55]通过与遗传算法结合的果蝇聚类算法改进路由协议,提高了数据传输效率;JIANG 等[56]提出了不均匀分簇果蝇聚类的路由协议。
1.3 人工蜂群聚类算法
人工蜂群聚类算法是根据大自然中蜂群寻觅蜜源的原理结合基本聚类算法形成的算法。与其他群智能聚类算法相似,人工蜂群聚类保留了蜂群算法(artificial bee colony algorithm,ABC)[57]在处理问题上深度搜索能力强的优势。这种算法具备无需先验信息、需控参数少等特性,且具有强大的搜索能力,在聚类过程表现出很好的准确性与稳定性。
1.3.1 人工蜂群聚类算法的仿生思想
自然界蜂群寻找优质蜜源的方式是通过蜂群内每只蜜蜂的不同分工实现的。其中包括引领蜂、跟随蜂和侦察蜂。引领蜂负责在蜜源周围进行搜索,采用贪婪原则寻找更优蜜源。跟随蜂会依靠引领蜂传递的信息对蜜源进行选择。当长时间蜜源未发生改变时,侦察蜂会放弃该蜜源探索新蜜源。
引领蜂与跟随蜂用(8)式寻找新蜜源:
其中,xij为第i 蜜源的第j 个维度值,vij为新的蜜源,α、i、k随机产生且α∈(0,1),i≠k。
当引领蜂与跟随蜂未找到更好蜜源,侦查蜂则会用(9)式随机寻找新蜜源,代替被抛弃蜜源。
1.3.2 与K-Means结合的人工蜂群聚类算法案例
ABC 单独在聚类问题中的应用[58]容易 出 现蜜源间差异小、蜜源位置过于随机,导致种群多样性下降,降低聚类效果。文献[59]提出了一种模仿蜜蜂觅食的蜂群算法与K-Means 算法结合的人工蜂群聚类算法IMABCK(IM Artificial Bee Colony Clustering Based On K-Means)。IMABCK 通过与KMeans 结合后降低对初始聚类中心的依赖性,减少孤立点对聚类结果的干扰,提高了聚类的准确度。
IMABCK 算法先通过一次K-Means迭代将数据进行预处理,得到的聚类结果作为蜜源的适应值,利用人工蜂群对各个聚类中心进行优化,优化后的聚类中心再进行K-Means聚类。
IMABCK算法的具体实现步骤如下:
步骤1:初始化参数,分别设置引领蜂、跟随蜂个数Sn,聚类中心数k,最大迭代次数max_A,控制参数Limit,孤立点删除;
步骤2:利用最大最小积法初始化聚类中心;
步骤3:定义聚类中心,对聚类中心进行一次K-Means 算法迭代,依靠适应度函数计算每只蜜蜂的适应度并排序;
步骤4:引领蜂以(8)式进行邻域搜索,并按贪婪原则替换蜜源;
步骤5:待引领蜂全部搜索完毕,跟随蜂按轮盘赌选择引领蜂并执行引领蜂的任务继续邻域搜索;
步骤6:待跟随蜂全部搜索完毕,依靠所得蜜源位置作为聚类中心,执行一次K-Means 迭代并用迭代后中心点更新蜂群;
步骤7:达到Limit 迭代时判断引领蜂的寻觅结果,如果不发生改变,则将引领蜂全部变为侦察蜂并按(9)式产生新蜜源;
步骤8:迭代次数大于等于max_A 则输出聚类中心,否则转向步骤3。
1.3.3 人工蜂群聚类算法的应用
人工蜂群聚类保留了蜂群智能算法中控制参数少、鲁棒性性强、易于实现等优点,能够很好地完成聚类任务,被广泛应用在各种聚类与数值优化问题中。以下列举了人工蜂群聚类算法被主要应用的几个领域。
1)图 像 分 割:VENKATA 等[60]使 用 结 合KMeans算法的人工蜂群聚类算法实现了卫星图像分割;PAN 等[61]通过改进邻域搜索机制的人工蜂群聚类算法对视网膜图像分割;ALAGARSAMY 等[62]将蜂群聚类应用在MR人脑的医学图像。
2)物联网:WANG等[63]用改进人工蜂群与优化模糊C-Means 聚类结合应用在无线传感器网络节能路由协议。
此外,KUMAR 等[64]、DEHKORDI等[65]利用优化的人工蜂群聚类对很多数据集也表现出很好的聚类效果。
2 相似性度量方法
在对数据样本进行仿生聚类的过程中,通常都避免不了对样本数据的相似性度量,即样本与样本之间的差异,主要为样本距离与相似系数两个方面,样本距离与相似系数的内容如下。
2.1 样本距离
通常会用两个样本之间的距离来表示样本的相似性。只有当两个样本完全一样时,样本的距离才为0;否则样本距离始终大于0。常用的距离公式为欧式距离、切比雪夫距离、曼哈顿距离等[66-67]。进行仿生聚类前,需分析样本本身的属性适合哪一种距离公式。列举样本距离度量方法如下。
设D(X,Y)为样本X 和样本Y 之间的距离,X=(x1,x2,…,xn)T,Y=(y1,y2,…,yn)T,n为样本维数。
1)欧式距离(Euclidean Distance)
欧式距离通常趋向于构建球形聚类簇,其计算公式表示为
2)切比雪夫距离(Chebyshev Distance)
切比雪夫距离的计算公式表示为
3)曼哈顿距离(Manhattan Distance)
曼哈顿距离的计算公式表示为
2.2 相似系数
样本数据的相似性不仅用距离表示,还可以利用相似系数[68]。相似系数值与样本间的相似性呈现负相关,相似系数越大则两个样本之间的相似性越差。常见的相似系数有余弦相似度、皮尔森相关系数等。根据距离公式假设列举相关系数如下。
1)余弦相似度(Cosine Similarity)
余弦相似度的表现形式为
2) 皮 尔 森 相 关 系 数(Pearson Correlation Coefficient)
皮尔森相关系数的表现形式为
3 聚类结果无监督评价方法
在对样本仿生聚类后,通常会对聚类结果进行对比与评价,人工评价的成本过高且低效、主观,不利于对算法进行优化与改进,因此采用相对更适合的无监督评价。常见无监督评价聚类结果的方法有轮廓系数、误差平方和、DB 指数、CH 指数[69]。其中轮廓系数不适合不同聚类的比较、DB 指数不适合环状分布聚类评价、CH 指数不适合基于密度的聚类算法评价。聚类结果无监督评价方法如下:
1)轮廓系数(SC)
轮廓系数主要由簇内样本的聚合度a(xi)与簇间样本的差异度b(xi)表示,当SC越接近1则聚类效果越好,SC的表现形式为
2)误差平方和(SSE)
误差平方和的聚类效果判断主要来自计算原始数据与拟合数据。例如对K-Means聚类中SSE越接近0 则拟合效果越好,其中m 为原始样本点,p 为预测值。SSE的表现形式为
3)Davies-Bouldin(DB)指数
当DB 指数越小则聚类效果越好。其中k 为聚类簇数,d(xi,xj)(i≠j)为两个簇中心的距离,a 为簇中心与簇内所有点距离和的平均值。DB 的表现形式为
4)Calinski-Harabasz(CH)指数
当CH 指数越大则聚类效果越好。其中聚类簇数用k 表示,样本数用n 表示,簇内样本的协方差矩阵为Wk,簇间的样本协方差矩阵为Bk。CH 的表现形式为
4 结论与展望
仿生聚类算法的出现解决了单纯的聚类方法中所存在的参数难以确认、局部最优、易收敛等不足,在仿生算法中融合基本聚类方法,用仿生算法的优化机制提升了聚类效果。在不同问题上其聚类效果都优于单纯的仿生算法与基本的聚类方法。尤其在求解结构复杂、大规模、多样化的聚类问题时,仿生聚类算法在计算效率和收敛精度方面均有更好的表现。随着仿生算法的优化和聚类算法的发展,未来仿生聚类算法可在以下几个方面进一步展开研究。
1)算法改进方面。根据不同聚类任务将仿生算法与基础聚类算法多样性结合,例如:果蝇算法除了和K-Means 还可以尝试与其他基础聚类算法结合;可以在聚类分析时对不同阶段的聚类过程结合仿生聚类思想进行优化;利用生物其他智能行为结合聚类算法对聚类分析的研究等,进一步发挥算法优势。
2)参数改进方面。仿生聚类算法的参数选取受过往研究者的主观因素过大,有些仿生算法或聚类算法的参数过多会增大聚类任务难度。因此,这些算法的结合思想、运行流程、数学基础等有待于进一步研究。
3)算法应用方面。仿生聚类算法的发展在聚类分析中拥有强大的优势与生命力。各种算法具有不同的优势和局限性,针对不同的聚类任务可以进行聚类分析比较再尝试仿生聚类的选取与思想结合,利用各自的优势或许会获得计算能力更强的算法进而解决愈发复杂的问题。