谢亮亮+刘建生+朱凡

摘要:针对模糊C-均值聚类算法(FCM)存在易受初始聚类中心影响和容易陷入局部最优的问题,提出了一种将灰狼优化算法(GWO)和模糊C-均值相结合的新聚类算法(GWO-FCM)。该算法利用GWO算法强大的全局寻优能力对FCM算法的聚类中心进行优化,模拟灰狼优秀的搜寻猎物行为找到一组最佳聚类中心来提高FCM的聚类效果。通过UCI数据集的仿真结果和算法比较验证了该算法的有效性。关键词: 聚类分析;灰狼优化算法;模糊C-均值聚类;初始聚类中心;全局优化DOI:10.11907/rjdk.171030中图分类号:TP312文献标识码:A文章编号:16727800(2017)0040028030引言 聚类是数据挖掘领域中必不可少的技术,是在事先没有分类规则下,根据事物间的特征相似度对事物进行区分和分类。它的主要任务是按准则把所有数据按不同特性划分成各个不同的簇,即最小化每个簇内部数据间的差异性,并且最大化属于任意不同簇的数据间的差异性[1]。在模糊集理论提出之后,研究者使用模糊集理论来作聚类分析[2]。FCM聚类算法由Dunn[3]于1974年第一次提出,随后由Bezdek进一步完善。但FCM在聚类分析中存在易受随机产生的初始聚类中心的影响以及容易早熟收敛等缺点,对聚类的结果有很大影响。针对传统的FCM存在的缺陷,本文提出一种基于灰狼优化的模糊C-均值聚类算法(GWOFCM)。GWO具有结构简单,需要设置的参数较少,有强大的全局寻优能力,在实验编码中容易实现等优点,对FCM聚类结果有显著提高。1灰狼优化算法GWO算法由Seyedali Mirjalili[4]于2012年受大自然中灰狼寻找和捕捉猎物行为的启发而提出,是一种新的元启发式算法。本文从以下几个方面介绍算法步骤。1.1社会等级灰狼是食物链顶端的群体猎食者,狼群一般由5~12只灰狼组成。在种群中有着严格的社会等级。在GWO算法设计中,突出了灰狼的狩猎技术和社会等级层次。它们的社会等级由高级到低级依次为:α、β、δ、w [5]。α是灰狼中的头狼,占有统治地位,有各项决策的优先权;β是头狼的下属狼,听从头狼并且可以命令较低等级的灰狼,再反馈信息给头狼;δ服从α、β的命令,可以指挥最底层的灰狼;w是最底层的狼,服从等级高的灰狼。灰狼社会等级非常严格,逐级递减。狩猎主要由α、β、δ决定引导完成,w服从等级高的狼群支配来完成狩猎任务。1.2包围猎物行为灰狼在狩猎过程中首先需要将猎物包围[6],建立这种行为的数学模型,用以下公式来描述其中,t为当前迭代次数;A和C为协调系数向量;Xp为猎物的位置向量;X为灰狼的位置向量。a的值在迭代过程中从2下降到0;r1和r2是范围为[0,1]的随机向量。1.3狩猎行为灰狼在狩猎行为中有识别猎物方位的能力,并且可以缩小范围来围剿猎物。狩猎行为一般情况下是由α,β,δ来引导,直至结束。然而在抽象的搜索空间,灰狼也不会知道最佳(猎物)位置[5]。用数学公式来模仿灰狼的狩猎过程,并且α(最佳候选解),β和δ获得猎物具体方位的能力比其它灰狼更强。所以在每次迭代过程中保留目前获得的最好的3只灰狼,也就是α,β,δ。再通过它们的位置来使其它候选灰狼更新自己当前的位置。数学公式表示如下[4]: α,β,δ灰狼先预测判断猎物的大概位置,再通过引导其它灰狼在猎物周围更新位置,从而锁定猎物的具体位置。1.4攻击猎物行为一旦猎物的位置锁定,灰狼将捕抓猎物。由式(3)可知,减小a的值,A的值也会减小,在迭代过程中a值会由2线性下降为0,A的取值范围则为[-2a,2a]。当A在范围[-1,1]中,灰狼的位置会出现在与猎物距离之间范围中的任何可能位置上。当|A|<1时,灰狼开始攻击猎物。1.5搜索猎物行为搜索猎物过程中灰狼是根据α,β,δ的位置情況来搜索的。它们开始是相互独立地出去搜索猎物,最后再由猎物的位置聚集起来攻击猎物。分散过程中需要用一个A>1或者A<1的值让候选灰狼远离猎物,可以实现并提高全局寻优效果。在GWO算法中的另外一个全局搜索系数是C,通过式(4)可知,C是范围在[0,2]中的随机数。随机增加或者减少C的值会影响到式(5)、式(6)和式(7)中的距离,改变猎物的随机权重,并且C的值不是线性下降的,而是随机数,可以使GWO在迭代过程中从局部最优结果中跳出来,达到增强全局寻优的效果。2模糊C-均值聚类算法

3GWO优化FCM的混合聚类算法模糊C-均值聚类要达到最佳聚类效果需使得它的目标函数最小[7],但由于在这个过程中随机的初始聚类中心对算法的影响很大,使聚类效果差。针对此问题,通过引入一种新群体智能算法GWO与之结合,达到更佳的聚类效果。由于GWO是一种全局寻优很强的算法,并且能跳出局部收敛,找到一组全局最优的聚类中心,使FCM的聚类中心达到最优。这样可以使FCM的聚类正确率明显提高,从而获得更好的聚类效果。3.1种群初始化根据群体智能算法初始化常用方法,使得算法中的种群具有多样性、随机性,初始化公式设定为:其中的upperj,lowerj表示第j个元素的上、下解,n表示灰狼种群大小,d表示灰狼种群的维数。3.2适应度函数设置适应度函数是筛选个体好坏程度的基准,越大表示个体越好,越小则表示个体越差,是由目标函数设定的[5],在GWO中也是用来判断狼群中灰狼层次的准则。在GWO中,适应度前三的α、β、δ狼保留下来引导w以及更低层次的灰狼去搜索猎物。因为在FCM聚类中,目标函数值越小,聚类的结果会更好。所以结合GWO和FCM算法,本文将GWO的适应度函数设定为:由式(16)可得,当FCM的JFCM越小,也就是聚类结果更好时,GWO的fitness会越大,通过对算法中的α、β、δ不断迭代,最后得出最好的适应度函数值α,将α设定为FCM的聚类中心。3.3更新设置根据GWO的搜索方法,通过包围、狩猎、攻击行为更新灰狼位置。在迭代过程中,获得最优灰狼位置xα。通过总结上述过程,GWO-FCM算法流程如下:Step1:初始化参数a,A和C;Step2:初始化狼群种群xi(i=1...n);Step3:计算狼群适应度fitness,选出最好的3只灰狼xα,xβ,xδ;Step4:如果T

4.2实验结果及分析 实验参数设置中,FCM的加权指数都设置为m=2,粒子群种群规模大小设置为NP=20,wφ1从0.9线性减小到0.4,η1=η2=0.5,迭代次数T=100。在本文提出的GWOFCM中,设最大的迭代数T=100,灰狼的种群大小NP=20,FCM算法的加权指数m=2,a从2线性下降到0,r1、r2为[0,1]的随机数。在与对比实验环境和参数设置相同的情况下,将GWOFCM算法运行30次,取实验结果的平均值与FCM和PSOFCM在Iris和Car中的聚类正确率作比较,FCM和PSOFCM实验数据引自文献[7],如表2所示。

通过表2实验结果可以看出,上述3种聚类算法的结果都有明显的差别。本文提出的GWO-FCM在数据集Iris和Car的实验结果中聚类正确率均高于其它模糊聚类算法,而且较原始的FCM有很大的提高,在用PSO改进的FCM上也有明显提高,说明灰狼优化算法对FCM聚类算法的优化效果比用PSO优化的效果更有优势,能更大程度地解决全局最优问题。 在Iris,Car两个数据集上,GWO-FCM算法在運行30次后每次运行结果的正确率稳定性如图1所示。 由图1可见,算法在执行30次后,在Iris数据集上聚类的准确率较平稳,有一定波动,但总体上保持在一个稳定范围。Car数据集上每次运行的结果中正确率都非常稳定,浮动范围很小,不会出现跳跃性的变化,因此表明GWOFCM算法的稳定性很高。5结语 本文将GWO巧妙地运用在FCM上,首次用一种新的群体优化算法GWO对FCM加以改进,GWO结构简单,需要设置的参数少,具体强大的全局寻优能力,有效地解决了模糊C-均值聚类算法对初始聚类中心的过度依赖、易出现早熟收敛等缺点。并且通过与传统的FCM以及PSOFCM聚类算法比较,在聚类正确率以及算法稳定性上取得了较好的实验结果。参考文献:

[1]刘慧.改进的FCM和插值理论在数字图像修复中的应用研究[D].赣州:江西理工大学,2014.

[2]王纵虎,刘志镜,陈东辉.基于粒子群优化的模糊C-均值聚类算法研究[J].计算机科学,2012,39(9):166169.

[3]胡蒙,苑迎春,王雪阳. 改进模糊聚类的云任务调度算法[J].计算机工程与设计, 2015, 36(9):24372441.

[4]MIRJALILI S, MIRJALILI S M, LEWIS A. Grey wolf optimizer[J]. Advances in Engineering Software, 2014, 69(3):4661.

[5]吕新桥,廖天龙.基于灰狼优化算法的置换流水车间调度[J].武汉理工大学学报,2015,37(5):111116.

[6]龙文,赵东泉,徐松金.求解约束优化问题的改进灰狼优化算法[J].计算机应用,2015,35(9):25902595.

[7]蒲蓬勃,王鸽,刘太安.基于粒子群优化的模糊C均值聚类改进算法[J].计算机工程与设计,2008,29(16):42774279.(责任编辑:陈福时)

灰狼算法 c语言 代码,基于灰狼优化的模糊C—均值聚类算法相关推荐

  1. 【图像分割】基于局部信息的模糊C均值聚类算法(FLICM)实现图像分割matlab代码

    1 简介 以图像分割为研究内容,分析了图像的空频域特征,并在此基础之上提出了一种基于模糊局部信息C均值聚类的分割算法.由于FLICM算法充分利用局部空间信息和局部灰度信息,能够很好地描述模糊性,对于边 ...

  2. 模糊聚类的代码实现python_Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现...

    目录 模糊理论 Fuzzy C-Means算法原理 算法步骤 python实现 参考资料 本文采用数据集为iris,将iris.txt放在程序的同一文件夹下.请先自行下载好. 模糊理论 模糊控制是自动 ...

  3. python计算iris数据集的均值_模糊C均值聚类算法及python实现

    目录 本文采用数据集为iris,将iris.txt放在程序的同一文件夹下.请先自行下载好. 模糊理论 模糊控制是自动化控制领域的一项经典方法.其原理则是模糊数学.模糊逻辑.1965,L. A. Zad ...

  4. php fuzzy,模糊C均值聚类算法(Fuzzy C-means)

    模糊c均值聚类与k均值聚类区别 k均值聚类 k均值聚类的实现中,把每个样本划分到单一的类别中,亦即是每个样本只能属于一种类别,不能属于多种类别.这样的划分,称为硬划分. 模糊c均值均类 为了解决硬划分 ...

  5. 灰狼算法 c语言 代码,GWO灰狼优化算法

    1.算法原理 灰狼属于犬科动物,被认为是顶级的掠食者,它们处于生物圈食物链的顶端.灰狼大多喜欢群居,每个群体中平均有5-12只狼.特别令人感兴趣的是,它们具有非常严格的社会等级层次制度,如图1,金字塔 ...

  6. FCM 模糊C均值聚类算法

    首先FCM在图像分割领域有很多应用,FCM算法我觉得主要是两个部分,一个是模糊理论,一个是C/Kmean算法,这两者在数学家手中完美的结合. 下面切入整体,我也是为了温故才写的这篇博客,如有错误或者瑕 ...

  7. 【图像分割】基于模糊C均值聚类算法CGFFCM实现彩色图像分割附matlab代码

    1 简介 The fuzzy c-means (FCM) algorithm is a popular method for data clustering and image segmentatio ...

  8. 基于FCM模糊C均值聚类算法的MATLAB仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB源码 %*********************

  9. 模糊c均值聚类算法的c++实现

    首先输入点的个数,维度,分类数目 我的代码FCM中主要过程如下: 1:(init_c函数)随机初始化聚类中心 2:(comp_dis函数)计算每个点到每个聚类距离 dis[i][j] 表示i点到j聚类 ...

最新文章

  1. [Quiz]竞赛题目 Word Trace
  2. 吃鸡服务器炸了会显示什么,绝地求生服务器再爆炸,还能不能好好吃鸡了?
  3. Qt opencv开发环境
  4. 一台计算机连入计算机网络后通过该计算机,一台计算机连入计算机网络后,该计算机( )。...
  5. 为什么单模光端机价格比多模光端机价格高
  6. android 控件高度和图片一样高,Android 根据图片宽高比例设置控件宽高
  7. 上拉电阻与下拉电阻介绍
  8. 数据增强操作(旋转、翻转、裁剪、色彩变化、高斯噪声等)
  9. 机器人工程师学习计划(计算机相关专业学习计划)
  10. JS计算时间差;.net计算时间差
  11. 浅谈文字编码和Unicode(中)[转]
  12. 小米开箱 (原创)
  13. MODBUS RTU转PROFIBUS DP 转换器怎么接线远创智控
  14. css里给文字加下划线代码,css添加文字下划线样式的方法
  15. html中图片放css还是,图片到底是写在html还是写在css呢
  16. 解决页面报错 500-内部服务器错误
  17. 清华大学计算机刘云鹏,除北京外,咱省是清华大学最大的生源地!为啥河南高分学子青睐清华,来看看...
  18. 4.STM32F407ZG按键输入
  19. 零基础深度学习对金县房价预测
  20. will do 和 will be doing的区别

热门文章

  1. 邻接表:构造有权图(使用头插法)
  2. 今天带大家认识下excel的条件格式
  3. 新型固体运载火箭KZ-11明年首飞 将实现“一箭六星”
  4. eclipse快捷方式打不开
  5. 双转盘装配机,软件PRO7功能块版 由松下xh和威纶触摸屏制作
  6. altium库文件存放在服务器上,altium-library
  7. 如何申请163邮箱账号,商务邮箱这样注册才更COOL!
  8. 司马炎爷爷 告诉你什么叫做内卷!
  9. 51开发实例 基于51单片机的出租车计价器
  10. 创建一个HTML5网页,HTML5 创建一个Web网页便利贴