时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测

时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测

目录

    • [时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测](#时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测)

预测效果






基本介绍

MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测(完整源码和数据)

1.data为数据集,单变量时间序列。

2.MainNGOGRUTS.m为程序主文件,其他为函数文件无需运行。

3.命令窗口输出MAE、MSE、RMSEP、R^2、RPD和MAPE,可在下载区获取数据和程序内容。

4.北方苍鹰算法优化参数为学习率,隐藏层节点个数,正则化参数。

注意程序和数据放在一个文件夹,运行环境为Matlab2018及以上.

程序设计

clike 复制代码
%% --------------LSTM优化----------------------
% 参数设置
SearchAgents = 5;  % 种群数量 
Max_iterations =10; % 迭代次数  

lowerbound = [1e-10 0.0001 10 ];%三个参数的下限
upperbound = [1e-2 0.002 400 ];%三个参数的上限
dim = 3;%数量,即要优化的LSTM超参数个数
 
fobj = @(x)fun(x,inputn_train,outputn_train,outputps);   %调用函数fun计算适应度函数值
%% 赋值; 
[Best_score,Best_pos,Convergence_curve]=NGO(SearchAgents,Max_iterations,lowerbound,upperbound,dim,fobj)    %% 北方苍鹰算法

%得到最优参数
L2Regularization = Best_pos(1,1); % 最佳L2正则化系数
InitialLearnRate = Best_pos(1,2); % 最佳初始学习率
NumOfUnits  =abs(round( Best_pos(1,3)));   % 最佳隐藏层节点数

%% ------------------利用优化参数重新训练预测----------------------------
% 数据输入x的特征维度
inputSize  = size(inputn_train,1);
% 数据输出y的维度
outputSize = size(outputn_train,1);

%  设置网络结构
layers = [ ...
    sequenceInputLayer(inputSize)     %输入层,参数是输入特征维数
   Layer(NumOfUnits)        %学习层,隐含层神经元的个数
    dropoutLayer(0.2)                  %权重丢失率
    fullyConnectedLayer(outputSize)   %全连接层,也就是输出的维数
    regressionLayer];    %回归层,该参数说明是在进行回归问题,而不是分类问题

% trainoption(lstm)
opts = trainingOptions('adam', ...      %优化算法
    'MaxEpochs',100, ...                %最大迭代次数
    'GradientThreshold',1,...           %梯度阈值,防止梯度爆炸
    'ExecutionEnvironment','cpu',...   %对于大型数据集合、长序列或大型网络,在 GPU 上进行预测计算通常比在 CPU 上快。其他情况下,在 CPU 上进行预测计算通常更快。
    'InitialLearnRate',InitialLearnRate, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',120, ...
    'LearnRateDropFactor',0.2, ...   % 指定初始学习率 0.005,在 100 轮训练后通过乘以因子 0.2 来降低学习率。
    'L2Regularization', L2Regularization, ...       % 正则化参数
    'Verbose',false, ...         %如果将其设置为true,则有关训练进度的信息将被打印到命令窗口中。
    'Plots','training-progress'...   %构建曲线图,   若将'training-progress'替换为'none',则不画出曲线
    );   % 'MiniBatchSize',outputSize*30, ...



%% -----------------预测结果-------------------------
%  数据格式转换

train_DATA=output_train';    %训练样本标签
test_DATA= output_test'; %测试样本标签

参考资料

[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502

[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502

相关推荐
简简单单做算法21 天前
基于PSO粒子群优化的CNN-LSTM的时间序列回归预测matlab仿真
人工智能·cnn·lstm·cnn-lstm·时间序列预测·pso粒子群优化
矩阵猫咪1 个月前
基于 RNNs 对 IMDB 电影评论进行情感分类
人工智能·rnn·深度学习·门控循环单元·长短时记忆网络
简简单单做算法1 个月前
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真,并对比CNN+GRU网络
深度学习·cnn·lstm·时间序列预测·cnn+lstm·cnn+gru
机器学习之心2 个月前
回归预测 | Matlab实现NGO-ESN北方苍鹰算法优化回声状态网络多输入单输出回归预测
多输入单输出回归预测·北方苍鹰算法优化·回声状态网络·ngo-esn
羽星_s2 个月前
Chronos:学习时间序列的大语言模型
深度学习·大语言模型·时间序列预测·chronos
机器学习之心3 个月前
时序预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络时间序列预测
时间序列预测·cpo-lstm·冠豪猪优化长短期记忆神经网络
阿鹿学术3 个月前
区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计
python·神经网络·cnn·区间预测·时间序列预测·回归算法·深度学习预测
机器学习之心3 个月前
时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测
时间序列预测·cpo-bilstm·冠豪猪优化双向长短期记忆网络
机器学习之心3 个月前
时序预测 | Matlab实现GWO-BP灰狼算法优化BP神经网络时间序列预测
时间序列预测·gwo-bp·灰狼算法优化bp神经网络
机器学习之心3 个月前
时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测
神经网络·时间序列预测·双向长短期记忆神经网络·双向时间卷积神经网络·bitcn-bilstm