时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测

目录

    • 时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测
      • 预测效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

预测效果

时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第1张图片
时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第2张图片
时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第3张图片
时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第4张图片
时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第5张图片

基本介绍

MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测(完整源码和数据)
1.Matlab实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络机时间序列预测;
2.输入数据为单变量时间序列数据,即一维数据;
3.运行环境Matlab2018及以上,运行GWOBiLSTMTIME即可,其余为函数文件无需运行,所有程序放在一个文件夹,data为数据集;
4.灰狼算法优化学习率,隐藏层节点,正则化系数;

模型描述

时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第6张图片
时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测_第7张图片

构建GWO-BILSTM预测模型的步骤如下:
(1) 现有数据集作为 BILSTM 模型的输入参数。
(2)初始化GWO-BILSTM模型的网络参数,将参数输入到
网络进行学习,输出一定时期预测值。
(3) GWO算法调整样本权重,不断更新中的参数BILSTM 直到找到最优解或达到最大迭代代数。
(4)获取GWO-BILSTM预测模型,获取并输出最终的预测结果。基于GWO-BILSTM模型的预测流程图如上。

程序设计

  • 完整程序和数据下载方式1:同等价值程序兑换;
  • 完整程序和数据下载方式2:MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测
%% 灰狼优化bilstm时间序列预测
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
tic
% restoredefaultpath
%%
data = xlsread('data.xlsx', 'Sheet1');
n=6;
[x,y]=data_process(data,n);%前n个时刻 预测下一个时刻

%划分数据
n=size(x,1);
m=round(n*0.7);%70%训练 后30%测试
P_train=x(1:m,:)';
P_test=x(m+1:end,:)';
T_train=y(1:m,:)';
T_test=y(m+1:end,:)';

f_=size(P_train, 1);                  
outdim = 1;                           

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%%  划分训练集和测试集
M = size(P_train, 2);
N = size(P_test, 2);

%%  优化算法参数设置
SearchAgents_no = 5;                   % 狼群数量
Max_iteration = 10;                    % 最大迭代次数
dim = 3;                               % 优化参数个数
lb = [1e-3, 10, 1e-4];                 % 参数取值下界(学习率,隐藏层节点,正则化系数)
ub = [1e-2, 30, 1e-1];                 % 参数取值上界(学习率,隐藏层节点,正则化系数)

%%  优化算法初始化
Alpha_pos = zeros(1, dim);  % 初始化Alpha狼的位置
Alpha_score = inf;          % 初始化Alpha狼的目标函数值,将其更改为-inf以解决最大化问题

Beta_pos = zeros(1, dim);   % 初始化Beta狼的位置
Beta_score = inf;           % 初始化Beta狼的目标函数值 ,将其更改为-inf以解决最大化问题

Delta_pos = zeros(1, dim);  % 初始化Delta狼的位置
Delta_score = inf;          % 初始化Delta狼的目标函数值,将其更改为-inf以解决最大化问题

%%  初始化搜索狼群的位置
Positions = initialization(SearchAgents_no, dim, ub, lb);

%%  用于记录迭代曲线
Convergence_curve = zeros(1, Max_iteration);

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128589064?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5502

你可能感兴趣的:(时间序列,GWO-BiLSTM,灰狼算法优化,双向长短期记忆神经网络,时间序列预测)