【MATLAB第54期】基于LSTM长短期记忆网络的多输入多输出滑动窗口回归预测模型

【MATLAB第54期】基于LSTM长短期记忆网络的多输入多输出滑动窗口回归预测模型

往期第13期已实现多输入单输出滑动窗口回归预测
本次在此代码基础上,新增多输出滑动窗口功能。
多输入单输出滑动窗口回归预测

一、实现效果

往期文章提到了对单列时间序列数据进行滑动窗口处理的思路,本文介绍如何对多输入多输出数据进行滑动窗口的思路。实现效果如下:

1.训练过程:
在这里插入图片描述

2.训练集拟合效果:
在这里插入图片描述

训练集输出变量1数据的RMSE为:0.087981
训练集输出变量1数据的MAPE为:-0.90458
训练集输出变量1数据的MAE为:0.066594
训练集输出变量1数据的R2为:0.21599
训练集输出变量2数据的RMSE为:0.98063
训练集输出变量2数据的MAPE为:0.034358
训练集输出变量2数据的MAE为:0.77383
训练集输出变量2数据的R2为:0.52585

在这里插入图片描述


3.测试集拟合效果:

在这里插入图片描述

测试集输出变量1数据的RMSE为:0.10677
测试集输出变量1数据的MAPE为:-0.88689
测试集输出变量1数据的MAE为:0.065214
测试集输出变量1数据的R2为:0.030359
测试集输出变量2数据的RMSE为:1.1881
测试集输出变量2数据的MAPE为:0.053303
测试集输出变量2数据的MAE为:0.99446
测试集输出变量2数据的R2为:0.31222

在这里插入图片描述

二、数据设置:

198行(代表198天),21列数据,其中前19列为变量,第20-21列为因变量。
前80%数据训练,后20%数据测试
(因变量数量可以更改)

三、滑动窗口处理:

滑动窗口尺寸为7,即可认为前7天的变量作为输入,第7天的因变量作为输出。
则输入的一组样本矩阵结构由20×1变成 20×7
而样本数量也从原来的198变为192 ,因为前6组变量数据作为了历史样本
​输入数据样本 19×198
​转变后 192×19×7
输出数据样本 2×198
​转变后 192×2

四、代码获取

后台私信回复“54期”可获得下载链接。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
LSTM(Long Short-Term Memory)是一种常用的循环神经网络,它的主要特点是可以对输入数据的长时依赖性进行建模,因此能够处理不定长的序列数据。在LSTM网络中,有三个门(输入门、遗忘门和输出门)用来控制信息的流动,以及一个状态变量来储存上一个时间步的记忆状态。这些门和状态变量能够有效地处理梯度消失/爆炸的问题,从而提高网络的训练效率和泛化能力。 针对LSTM网络的多输入单输出问题,可以使用Matlab来进行实现。首先需要定义网络的结构,具体包括输入层、LSTM层和输出层。在输入层中,可以设置多个输入变量,以便将不同类型的数据输入给网络。对于每个输入变量,需要设定其输入数据的维度和名称。在LSTM层中,需要指定网络的隐状态的节点数和时间步数。在输出层中,可以根据实际需要选择不同类型的激活函数,例如sigmoid函数、ReLU函数等。此外,还需要定义损失函数和优化器,以便进行网络的训练和优化。 在实现过程中,需要注意LSTM网络的参数初始化、学习率的设置、梯度裁剪等问题,以避免出现梯度消失/爆炸等问题。可以使用Matlab自带的深度学习工具箱,或者借助第三方工具库,例如Keras、PyTorch等。通过合理的参数调整和网络结构设计,可以得到较好的实验效果,从而实现LSTM网络的多输入单输出任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值