模糊聚类FCM算法和基于GA遗传优化的FCM聚类算法matlab仿真

简介: 模糊聚类FCM算法和基于GA遗传优化的FCM聚类算法matlab仿真

1.算法概述

  在各种糊聚类算法中 ,模糊C -均值聚类算法FCM (FuzzyC MeanClusteringAlgorithm )的应用最为广泛.但在实际的应用中 ,FCM算法却容易陷入局部最优解.因此 ,提出了一种基于遗传算法GA(GeneticAlgorithm )的模糊聚类分析方法 ,它利用了遗传算法随机搜索的特点 ,可以避免陷入局部最优解.实验表明 ,将该遗传算法与FCM算法结合起来进行聚类分析 ,比单一使用遗传算法或单一使用FCM算法进行聚类分析的效果都要好.

   针对FCM聚类,GA-FCM聚类采用了GA与FCM(GA-FCM)聚类进行全局搜索,克服了FCM聚类容易陷入局部极小值的问题.GA-FCM聚类是以全局最优个体将GA聚类用一个最优个体,迭代过程中既包括了GA运算.它依据GA的随机性扩大了搜索范围,之后在所找到的个体.

   模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。
   首先,需要一种方法度量两个样本的相似性,这个就是距离。FCM是一种重要的聚类算法,其目标是将n维空间中的数据X = {x_1, ..., x_N}分配到C个聚类中心v_1, ..., v_C。在欧氏距离意义下,数据靠近哪个聚类中心就属于哪个类。

  把这种一个样本属于结果的这种相似的程度称为样本的隶属度,一般用表示,表示一个样本相似于不同结果的一个程度指标。

    基于此,假定数据集为X,如果把这些数据划分成c类的话,那么对应的就有c个类中心为C,每个样本j属于某一类i的隶属度为,则定义一个FCM目标函数及其约束条件如下所示:

1.png

  分别对其中的变量、求导数,求该目标函数的极值。

  在最终的结果中,与是相互包含的,在fcm算法的初始阶段既没有,也没有,所以在程序开始时可以任意赋值给和其中一个,迭代计算。

FCM类中心的更新法则:

2.png

    看式子可以发现也是一个加权平均,类i确定后,首先将所有点到该类的隶属度求和,然后对每个点,隶属度除以这个和就是所占的比重,乘以​就是这个点对于这个类i的贡献值了。   

2.仿真效果预览
matlab2022a仿真结果如下:
3.png
4.png
5.png

3.MATLAB部分代码预览

max=10;%最大值
min=0;%最小值
cluster_n=5;%所要聚类的个数
pop_size=150;%种群大小
Pc=0.25;%交叉概率
Pm=0.05;%变异概率
max_run=300;%最大运行次数
N=size(data,2);%特征维数
Num_boolean=8;%表示“7.5“所要得二进制个数
G_F=zeros(pop_size,1);%染色体适应度
U=zeros(cluster_n, size(data,1));%初始化隶度矩U
expo=2;%权值m大小
SL=2;
min_impro=0.0001;
 
 
G=round(rand(pop_size,cluster_n*N*Num_boolean));
for h=1:max_run
for i=1:pop_size %遍历整个种群
     center=zeros(cluster_n,N);%初始化单个染色体中心
     center=code(G(i,:),cluster_n,N,max,min,Num_boolean);%(1)对染色体解码,得到实数表示的聚类中心
     [U,obj_fitness(i),obj(i)]=Uconvert(data, cluster_n, expo,center);
 end
     if i > 1,
        if abs(obj(i) - obj(i-10)) < min_impro, break; end,
    end
 T(h)=h;    
 Fit=obj;
 [Order,Index]=sort(Fit);
 BF=Order(1);
 BFI=BF;
 BG=G(Index(1),:);
 ln=1;
 for i=1:1:SL
     BGG(i,:)=G(Index(ln),:);
     ln=ln+1;
 end 
 Best_value(h)=Order(1);
 Best_chrom=G(Index(1),:);
 
 
 NG=selection(G,obj_fitness,pop_size);
 NG=crossover(NG,Pc,pop_size);
 NG=mutation(NG,Pm,pop_size);
 Rs=4;
 for i=1:1:SL
     NG(pop_size-Rs,:)=BGG(i,:);
     Rs=Rs-1;
 end
 G=NG;
end
center
b=sort(Best_value);
Pbest=b(1)
 
plot(T,Best_value);
plotflag=2;
M=2;
[U2,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm(data,cluster_n,plotflag,M)
A_019
相关文章
|
7月前
|
存储 传感器 分布式计算
针对大尺度L1范数优化问题的MATLAB工具箱推荐与实现
针对大尺度L1范数优化问题的MATLAB工具箱推荐与实现
|
7月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
655 0
|
7月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
319 8
|
7月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
367 8
|
7月前
|
机器学习/深度学习 供应链 算法
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
257 0
|
7月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
347 0
|
算法 数据安全/隐私保护
基于GA遗传算法的悬索桥静载试验车辆最优布载matlab仿真
本程序基于遗传算法(GA)实现悬索桥静载试验车辆最优布载的MATLAB仿真(2022A版)。目标是自动化确定车辆位置,使加载效率ηq满足0.95≤ηq≤1.05且尽量接近1,同时减少车辆数量与布载时间。核心原理通过优化模型平衡最小车辆使用与ηq接近1的目标,并考虑桥梁载荷、车辆间距等约束条件。测试结果展示布载方案的有效性,适用于悬索桥承载能力评估及性能检测场景。
|
11月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本内容包含基于BiLSTM与遗传算法(GA)的算法介绍及实现。算法通过MATLAB2022a/2024b运行,核心为优化BiLSTM超参数(如学习率、神经元数量),提升预测性能。LSTM解决传统RNN梯度问题,捕捉长期依赖;BiLSTM双向处理序列,融合前文后文信息,适合全局信息任务。附完整代码(含注释)、操作视频及无水印运行效果预览,适用于股票预测等场景,精度优于单向LSTM。
|
8月前
|
算法 安全 定位技术
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
457 40
|
算法 JavaScript 数据安全/隐私保护
基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真
本内容介绍了一种基于GA遗传优化的阈值计算方法在认知异构网络(CHN)中的应用。通过Matlab2022a实现算法,完整代码含中文注释与操作视频。能量检测算法用于感知主用户信号,其性能依赖检测阈值。传统固定阈值方法易受噪声影响,而GA算法通过模拟生物进化,在复杂环境中自动优化阈值,提高频谱感知准确性,增强CHN的通信效率与资源利用率。预览效果无水印,核心程序部分展示,适合研究频谱感知与优化算法的学者参考。

热门文章

最新文章