多输入多输出 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多输入多输出预测

目录

预测效果



基本介绍

多输入多输出 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多输入多输出预测

1.data为数据集,10个输入特征,3个输出变量。

2.main.m为主程序文件。

3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

程序设计

  • 完整程序和数据下载方式:私信博主回复Matlab实现ABC-BP人工蜂群算法优化BP神经网络多输入多输出预测
clike 复制代码
function [bestcord,bestpos,BestCost] = ABC(nPop,MaxIt,VarMin,VarMax,nVar,fobj)

% MaxIt = 200;                  % 最大迭代次数
% nPop = 100;                   % 蜂群大小
VarSize = [1 nVar];     % 变量矩阵
nOnlooker = nPop;             % 侦察蜂个数
L = round(0.6*nVar*nPop);     % 探索极值限制参数
a = 1;                        % 加速度系数上限


%% Initialization
%% 初始化
% 置空蜜蜂矩阵
empty_bee.Position = [];
empty_bee.Cost = [];
% 初始化蜂群数组
pop = repmat(empty_bee, nPop, 1);
% 初始化最优解
BestSol.Cost = inf;
% 产生初始种群
for i = 1:nPop
    pop(i).Position = unifrnd(VarMin, VarMax, VarSize);
    pop(i).Cost = fobj(pop(i).Position);
    if pop(i).Cost <= BestSol.Cost
        BestSol = pop(i);
    end
end
% 丢解计数器
C = zeros(nPop, 1);
% 保存最优函数值的数组
BestCost = zeros(MaxIt, 1);

%% ABC迭代
for it = 1:MaxIt
    % 引领蜂
    for i = 1:nPop
        % 随机选择不等于i的k
        K = [1:i-1 i+1:nPop];
        k = K(randi([1 numel(K)]));
        % 定义加速度系数
        phi = a*unifrnd(-1, +1, VarSize);
        % 新的蜜蜂位置
        newbee.Position = pop(i).Position+phi.*(pop(i).Position-pop(k).Position);
        % 边界处理
        newbee.Position = max(newbee.Position, VarMin);
        newbee.Position = min(newbee.Position, VarMax);
        % 新的蜜蜂函数值
        newbee.Cost = fobj(newbee.Position);
        % 比较
        if newbee.Cost <= pop(i).Cost
            pop(i) = newbee;
        else
            C(i) = C(i)+1;
        end
    end
    % 计算适应度值和选择概率
    F = zeros(nPop, 1);

往期精彩

MATLAB实现RBF径向基神经网络多输入多输出预测
MATLAB实现BP神经网络多输入多输出预测
MATLAB实现DNN神经网络多输入多输出预测

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/116377961

[2] https://blog.csdn.net/kjm13182345320/article/details/127931217

[3] https://blog.csdn.net/kjm13182345320/article/details/127894261

相关推荐
小赵起名困难户2 小时前
蓝桥杯备赛1-2合法日期
算法
shichaog2 小时前
腿足机器人之八- 腿足机器人动力学
算法·机器人
悄悄敲敲敲4 小时前
C++:dfs习题四则
c++·算法·深度优先
牛大了20235 小时前
[LeetCode力扣hot100]-二叉树相关手撕题
算法·leetcode·职场和发展
ll7788115 小时前
LeetCode每日精进:20.有效的括号
c语言·开发语言·算法·leetcode·职场和发展
德先生&赛先生5 小时前
LeetCode-633. 平方数之和
数据结构·算法·leetcode
WHATEVER_LEO7 小时前
【每日论文】Latent Radiance Fields with 3D-aware 2D Representations
人工智能·深度学习·神经网络·机器学习·计算机视觉·自然语言处理
mengyoufengyu8 小时前
算法12-贪心算法
python·算法·贪心算法
SharkWeek.8 小时前
【力扣Hot 100】链表4
算法·leetcode·链表
小白菜又菜8 小时前
Leetcode 518. Coin Change II
算法·leetcode