2023年算法GWCA -CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法GWCA -CNN-BiLSTM-ATTENTION回归预测(matlab)

GWCA -CNN-BiLSTM-Attention长城建造算法优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。

长城建造算法(Great Wall Construction Algorithm,GWCA)的灵感来自于古长城建造过程中工人之间的竞争和淘汰机制。该成果于2023年7月在线发表,12月正式发表在中科院1区SCI期刊Expert Systems With Applications。参考文献如下:

Ziyu Guan, Changjiang Ren, Jingtai Niu, Peixi Wang, Yizi Shang,Great Wall Construction Algorithm: A novel meta-heuristic algorithm for engineer problems,Expert Systems with Applications,Volume233,2023,120905,ISSN0957-4174, https://doi.org/10.1016/j.eswa.2023.120905.

它是一种自适应的优化算法,能够根据环境的变化自动调整参数和策略。具有较强的鲁棒性,能够应对各种复杂的优化问题。

代码介绍如下:

1.多变量单输出,优化的参数为:卷积核的大小,隐藏单元数目,最大训练周期,初始学习率。评价指标包括:R2、MAE、RMSE和MAPE等,图很多,出图结果如图所示,可完全满足您的需求

  1. 长城建造算法也可以替换成其他算法,比如麻雀、鹈鹕、蜣螂等等,也可定制改进~

3.直接替换Excel数据即可用,适合新手小白

4.附赠风力发电功率测试数据,可直接运行

5.商品只是提供模型,价格不包含讲解,发货后可保证运行,但程序类商品不支持退换

6.由于每个人的数据集都是独一无二的,因此预测效果不同,无法保证替换数据就一定得到您满意的结果~

实验结果如下;

部分主函数代码如下:

Matlab 复制代码
clc;clear; close all
% GWCA_CNN_BiLSTM_ATTENTION预测
X = xlsread('风电场预测.xlsx');
X = X(5665:6665,:);  %选取部分数据
disp('..........................................................................................................................................')
disp('GWCA_CNN_BiLSTM_ATTENTION预测')
disp('由于数据量大,程序运行较慢,请耐心等待!')
disp('..........................................................................................................................................')
% GWCA参数设置
pop=5; % 种群数量
Max_iter=5; % 最大迭代次数 
dim=4; % 优化4个超参数参数 卷积核的大小 隐藏单元数目 最大训练周期 初始学习率
lb = [32, 15,30,0.001];%下边界
ub = [128,150,500,0.1];%上边界
fobj = @(x) fun(x,X) ;
[Best_score,Best_pos,curve]=GWCA(pop,Max_iter,lb,ub,dim,fobj);
% 绘制进化曲线
figure
plot(curve,'r-','linewidth',1)
xlabel('进化代数')
ylabel('均方根误差MSE')
legend('最佳适应度')
title('GWCA-CNN-BiLSTM-ATTENTION的收敛曲线')
disp('')
disp(['卷积核的大小为   ',num2str(round(Best_pos(1)))]);
disp(['最优隐藏单元数目为   ',num2str(round(Best_pos(2)))]);
disp(['最优最大训练周期为   ',num2str(round(Best_pos(3)))]);
disp(['最优初始学习率为   ',num2str((Best_pos(4)))]);
%%  将最佳参数回带
num_samples = length(X);       % 样本个数 
kim = 6;                      % 延时步长(kim个历史数据作为自变量)
zim =  1;                      % 跨zim个时间点进行预测
or_dim = size(X,2);
%  重构数据集
for i = 1: num_samples - kim - zim + 1
    res(i, :) = [reshape(X(i: i + kim - 1,:), 1, kim*or_dim), X(i + kim + zim - 1,:)];
end
相关推荐
CODE_RabbitV11 分钟前
【深度强化学习 DRL 快速实践】近端策略优化 (PPO)
算法
沅_Yuan13 分钟前
基于贝叶斯优化的Transformer多输入单输出回归预测模型Bayes-Transformer【MATLAB】
神经网络·matlab·回归·贝叶斯·transformer·回归预测
Wendy_robot1 小时前
【滑动窗口+哈希表/数组记录】Leetcode 438. 找到字符串中所有字母异位词
c++·算法·leetcode
程序员-King.1 小时前
day49—双指针+贪心—验证回文串(LeetCode-680)
算法·leetcode·贪心算法·双指针
转基因2 小时前
Codeforces Round 1020 (Div. 3)(题解ABCDEF)
数据结构·c++·算法
我想进大厂3 小时前
图论---Kruskal(稀疏图)
数据结构·c++·算法·图论
@Aurora.3 小时前
数据结构手撕--【二叉树】
数据结构·算法
victd3 小时前
什么是AutoRec?
算法
陈壮实的搬砖日记3 小时前
抛硬币背后的秘密-通俗玩转二项分布
算法
前端 贾公子3 小时前
力扣 83 . 删除排序链表中的重复元素:深入解析与实现
数据结构·算法