龙空技术网

MATLAB环境下一种基于蜉蝣优化方法的聚类算法

哥廷根数学学派 28

前言:

目前姐妹们对“群智能优化算法”都比较重视,朋友们都想要了解一些“群智能优化算法”的相关内容。那么小编同时在网上汇集了一些对于“群智能优化算法””的相关知识,希望咱们能喜欢,咱们快快来了解一下吧!

随着大数据时代的来临,机器学习技术的发展也越来越快。聚类分析作为数据分析中最有代 表性的方法之一,被广泛应用于无监督机器学习中。K-Means聚类算法是经典聚类分析算法中的一种,其算法相对简单易懂,在容易实现的同时兼具收敛速度快等优点,被大量学者应用于模式识别、数据处理、模型分类等方面的研究。

K-Means算法的原理是将待处理的数据集分为K个不同的类,要求在划分时遵循互不干扰的 原则,分配时遵循最近邻法则。K-Means 算法存在两个主要缺点:一是初始聚类中心是随机选取的,每一次运行的初始值均不相同,大大影响了最终的聚类结果;二是此类传统聚类算法的通病— “局部最优”。

为了改善K-Means算法的稳定性和效率问题,如何选取一个合理的初始聚类中心显得尤为重要。为了获得更好的聚类效果,许多研究者在传统算法上提出了改进算法。近年来,群智能优化算法的出现解决了K-Means 算法对初始中心点过度依赖的问题。例如有学者使用经典粒子群算法对 K-Means算法进行优化,实验得到的聚类结果未陷入局部最优,而且在实际应用中的效果得到了提升。

蜉蝣算法主要模拟了蜉蝣的飞行行为及交配过程,每个蜉蝣在搜索空间中的位置代表了 问题的一个可能的解。蜉蝣算法(MA)可以认为是粒子群优化算法的一种改进,其综合了粒子群PSO、遗传算法 GA 和萤火虫算法FA的各大优势,具有收敛速度快,搜索能力强等优点,因此使用蜉蝣算法对K-Means聚类算法进行优化。

MATLAB环境下一种基于蜉蝣优化方法的聚类算法

压缩包=数据+程序+参考文献。

部分代码如下:

%% Problem Definition% Objective Functionfuncname='Clustering';Index = 'DB';	% DB or CSX = xlsread('mydata.xlsx'); % Replace the data in this files with your data% Remove outliers%X = rmoutliers(X,"mean");% Normilize Data%X=normalize(X,"range");k = 10;ObjectiveFunction=@(s) ClusteringCost(s, X, Index);     % Cost FunctionProblemSize=[k size(X,2)+1];  % Decision Variables Matrix SizeLowerBound= repmat([min(X) 0],k,1);      % Lower Bound of VariablesUpperBound= repmat([max(X) 1],k,1);      % Upper Bound of Variables

寻优结果如下:

完整代码如下:

标签: #群智能优化算法 #算法分析实验总结 #有约束条件的遗传算法matlab代码 #遗传算法收敛过程用matlab画 #c均值聚类matlab程序