您现在的位置:首页 >> 机器学习 >> 内容

m基于果蝇优化的K-means数据聚类分析matlab仿真

时间:2023/1/4 21:04:59 点击:

  核心提示:05_043_m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y52cmJxy

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

      果蝇优化算法FOA(Fruit Fly Optimization Algorithm)是由台湾博士潘文超于2011年提出的,与蚁群算法和粒子群算法类似,是基于动物群体觅食行为演化出的一种寻求全局优化的新方法。它不同于顺序执行的传统智能算法,而是以果蝇群体自组织性和并行性为基础,构造出的一种动物自治体模型。FOA有着算法简单、控制参数少、容易实现、且具有一定并行性等特点,因此在各领域得到广泛应用[4]。FOA可以优化神经网络参数,已成功应用于企业经营绩效评估、外贸出口预测、原油含水率预测等[3,5-6];FOA也可优化支持向量机模型,已成功应用于故障诊断、物流需求量预测等[7-8]。但由于FOA是较晚提出的一种随机搜索算法,其在理论分析和应用研究等方面还处于初级阶段,同时也存在易发散、收敛精度不高等缺点。

4.部分源码

X1=100*rand(1,100)+20;

Y1=100*rand(1,100)+20;

X2=100*rand(1,100)+100;

Y2=100*rand(1,100)+100;

 

X_axis = [X1,X2];

Y_axis = [Y1,Y2];

Data   = [X_axis;Y_axis];

Cluster= 2;

Iters  = 1;

figure(1);

plot(X_axis,Y_axis,'r*');

%初始化kmeans聚类

[Cxy1,Err1] = kmean(Data,Cluster,Iters);

%%

%初始果蝇群体位置

X_ini = 100*rand(1,2);

Y_ini = 100*rand(1,2);

%迭代次数

MIter = 150;

%种群规模

Pops  = 10;

%果蝇寻优开始

%利用嗅觉寻找食物

for i=1:Pops

    %果蝇个体飞行距离

    X(i,:)     = X_ini + 200*rand()-100;

    Y(i,:)     = Y_ini + 200*rand()-100;

    %与原点之距离

    D(i,1)     =(X(i,1)^2+Y(i,1)^2)^0.5;

    D(i,2)     =(X(i,2)^2+Y(i,2)^2)^0.5;

    %味道浓度为距离之倒数,先求出味道浓度判定值

    S(i,1)     = 1/D(i,1);

    S(i,2)     = 1/D(i,2);

    %利用味道浓度判定函数求出味道浓度

    [Cxy,Err]= kmean_opt(Data,Cluster,Iters,[S(i,1);S(i,2)]);    

    Smell(i) = Err;

end

%寻找初始极值

[bestSmell,bestindex]=min(Smell);

%利用视觉寻找伙伴聚集味道浓度最高之处

X_ini     = X(bestindex);

Y_ini     = Y(bestindex);

Smellbest = bestSmell;

%果蝇迭代

for g=1:MIter

    g

    for i=1:Pops

        %由上一代最佳位置处增加果蝇个体飞行距离

        X(i,:) = X_ini + 200*rand() - 100;

        Y(i,:) = Y_ini + 200*rand() - 100;

 

        %与原点距离

        %与原点之距离

        D(i,1)     =(X(i,1)^2+Y(i,1)^2)^0.5;

        D(i,2)     =(X(i,2)^2+Y(i,2)^2)^0.5;

 

        %味道浓度为距离之倒数,先求出味道浓度判定值

        S(i,1)     = 1/D(i,1);

        S(i,2)     = 1/D(i,2);

        [Cxy,Err]= kmean_opt(Data,Cluster,Iters,[S(i,1);S(i,2)]);    

        Smell(i) = Err;

    end

end

05_043_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168