首页 > 其他分享 >多维时序 | MATLAB实现GRU多变量时间序列预测

多维时序 | MATLAB实现GRU多变量时间序列预测

时间:2022-12-15 15:39:29浏览次数:40  
标签:... GRU ...% YTrain 序列 MATLAB 多维 XTrain


多维时序 | MATLAB实现GRU多变量时间序列预测

目录

  • ​​多维时序 | MATLAB实现GRU多变量时间序列预测​​
  • ​​效果一览​​
  • ​​基本介绍​​
  • ​​程序设计​​
  • ​​参考资料​​

效果一览

多维时序 | MATLAB实现GRU多变量时间序列预测_时间序列预测


多维时序 | MATLAB实现GRU多变量时间序列预测_时间序列_02

多维时序 | MATLAB实现GRU多变量时间序列预测_GRU_03

多维时序 | MATLAB实现GRU多变量时间序列预测_多变量时间序列_04

基本介绍

本次运行测试环境MATLAB2020b,MATLAB实现GRU多变量时间序列预测,门控循环单元。GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。实际中很多序列的变化规律都会受到其他序列的影响,比如在研究居民的人均消费序列时,由于消费会受收入的影响,如果能把收入也纳入研究范围,就能得到更精确的消费模型,这就涉及多元时间序列分析。

程序设计

  • 完整程序私信博主。
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% define the Deeper GRU networks
numFeatures= 1;%输入节点
numResponses = 1;%输出节点
numHiddenUnits = 500;%隐含层神经元节点数
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%构建GRU网络
layers = [sequenceInputLayer(numFeatures)
gruLayer(numHiddenUnits) %GRU函数
dropoutLayer(0.2)%丢弃层概率
reluLayer('name','relu')% 激励函数 RELU
fullyConnectedLayer(numResponses)
regressionLayer];
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
XTrain=XTrain';
YTrain=YTrain';
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% GRU结构参数
options = trainingOptions('adam', ... % adam优化算法 自适应学习率
'MaxEpochs',500,...% 最大迭代次数
'MiniBatchSize',5, ...%最小批处理数量
'GradientThreshold',1, ...%防止梯度爆炸
'InitialLearnRate',0.005, ...% 初始学习率
'LearnRateSchedule','piecewise', ...
'LearnRateDropPeriod',125, ...%125次后 ,学习率下降
'LearnRateDropFactor',0.2, ...%下降因子 0.2
'ValidationData',{XTrain,YTrain}, ...
'ValidationFrequency',5, ...%每五步验证一次
'Verbose',1, ...
'Plots','training-progress');
%% 训练GRU网络
net = trainNetwork(XTrain,YTrain,layers,options);
%% 测试样本标准化处理
dataTestStandardized = (data_Test - mu) / sig;
XTest = dataTestStandardized(1:end-1,:)%测试输入
YTest = data_Test(2:end,:);%测试输出
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

标签:...,GRU,...%,YTrain,序列,MATLAB,多维,XTrain
From: https://blog.51cto.com/u_15735367/5940129

相关文章