多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测

多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测

目录

    • 多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测
      • 基本介绍
      • 程序设计
      • 学习总结
      • 参考资料

基本介绍

本次运行测试环境MATLAB2020b,MATLAB实现CNN-LSTM多变量时间序列预测,卷积长短期记忆神经网络。

深度学习使用分布式的分层特征表示方法自动提取数据中的从最低层到最高层固有的抽象特征和隐藏不变结构. 为了充分利用单个模型的优点并提高
预测性能, 现已提出了许多组合模型。

1

  • CNN 是多层前馈神经网络, 已被证明在提取隐藏的空间特征方面具有突出的性能。CNN 具有稀疏连接和权重共享的性质, 这大大减少了模型参数的数量。使用CNN 提取目标站点和其他站点的因素之间的潜在空间关系, 以减少预测误差.
    2

  • 时间序列[是按照时间排序的一组随机变量, 它本质上反映的是某个或者某些随机变量随时间不断变化的趋势。作为循环神经网络的特殊变体, LSTM 具有自动存储和删除时间状态信息的能力, 可以提取长时间序列的复杂特征关系, 解决传统RNN 缺乏建立远程结构连接能力的问题, 从而避免“梯度爆炸”现象的发生。
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第1张图片

程序设计

  • 完整程序和数据下载:MATLAB实现CNN-LSTM多变量时间序列预测
%% cnnlstm
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
layers = [ ...
    
    sequenceInputLayer([inputSize,1,1],'name','input')   %输入层设置
    sequenceFoldingLayer('name','fold')
    convolution2dLayer([2,1],10,'Stride',[1,1],'name','conv1')
    batchNormalizationLayer('name','batchnorm1')
    reluLayer('name','relu1')
    maxPooling2dLayer([1,3],'Stride',1,'Padding','same','name','maxpool')
    sequenceUnfoldingLayer('name','unfold')
    flattenLayer('name','flatten')
    lstmLayer(numhidden_units1,'Outputmode','sequence','name','hidden1') 
    dropoutLayer(0.3,'name','dropout_1')
    lstmLayer(numhidden_units2,'Outputmode','last','name','hidden2') 
    dropoutLayer(0.3,'name','drdiopout_2')
    fullyConnectedLayer(outputSize,'name','fullconnect')   % 全连接层设置(影响输出维度)(cell层出来的输出层) %
    tanhLayer('name','softmax')
    regressionLayer('name','output')];
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lgraph = layerGraph(layers)
lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
  • 相关预测
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第2张图片
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第3张图片
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第4张图片
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第5张图片
    多维时序 | MATLAB实现CNN-LSTM多变量时间序列预测_第6张图片

学习总结

CNN-LSTM 充分利用了CNN 强大的空间特征提取能力和LSTM 强大的时间特征提取能力的优势. 通过对两个模型优势的充分利用, 实现了对时空关系特征的深层提取.

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128011037?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/127993418?spm=1001.2014.3001.5501

你可能感兴趣的:(时间序列,CNN-LSTM,多变量时间序列,时间序列预测,卷积长短期记忆神经网络)