时序预测 | MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)
目录
- 时序预测 | MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)
- 预测结果
- 基本介绍
- 程序设计
- 参考资料
预测结果
基本介绍
Matlab实现BiLSTM双向长短期记忆神经网络时间序列预测未来(完整源码和数据)
Matlab实现BiLSTM双向长短期记忆神经网络时间序列预测未来(完整源码和数据)
1.Matlab实现BiLSTM双向长短期记忆神经网络时间序列预测未来;
2.运行环境Matlab2018及以上,data为数据集,单变量时间序列预测;
3.递归预测未来数据,可以控制预测未来大小的数目,适合循环性、周期性数据预测;
4.命令窗口输出R2、MAE、MAPE、MBE、MSE等评价指标;
程序设计
- 完整程序和数据获取方式1:私信博主回复MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价),同等价值程序兑换;
- 完整程序和数据下载方式2(资源处直接下载):MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价));
- 完整程序和数据下载方式3(订阅《LSTM长短期记忆神经网络》专栏,同时可阅读《LSTM长短期记忆神经网络》专栏内容,数据订阅后私信我获取):MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)),专栏外只能获取该程序。
%% 创建混合网络架构
% 输入特征维度
numFeatures = f_;
% 输出特征维度
numResponses = 1;
FiltZise = 10;
% 创建模型
layers = [...
% 输入特征
sequenceInputLayer([numFeatures 1 1],'Name','input')
sequenceFoldingLayer('Name','fold')
% 特征学习
(50,'Name','lstm1','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
(optVars.NumOfUnits,'OutputMode',"last",'Name','bil4','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
dropoutLayer(0.25,'Name','drop3')
% 全连接层
fullyConnectedLayer(numResponses,'Name','fc')
regressionLayer('Name','output') ];
layers = layerGraph(layers);
layers = connectLayers(layers,'fold/miniBatchSize','unfold/miniBatchSize');
%% 训练选项
% 批处理样本
MiniBatchSize =128;
% 最大迭代次数
MaxEpochs = 500;
options = trainingOptions( 'adam', ...
'MaxEpochs',500, ...
'GradientThreshold',1, ...
'InitialLearnRate',optVars.InitialLearnRate, ...
'LearnRateSchedule','piecewise', ...
'LearnRateDropPeriod',400, ...
'LearnRateDropFactor',0.2, ...
'L2Regularization',optVars.L2Regularization,...
'Verbose',false, ...
'Plots','none');
%% 训练混合网络
net = trainNetwork(XrTrain,YrTrain,layers,options);
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229