目录

  • I. 前言
  • II. 多模型滚动预测
  • III. 代码实现
    • 3.1 数据处理
    • 3.2 模型搭建
    • 3.3 模型训练/测试
    • 3.4 实验结果
  • IV. 源码及数据

I. 前言

系列文章:

  1. 深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)
  2. PyTorch搭建LSTM实现时间序列预测(负荷预测)
  3. PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)
  4. PyTorch搭建双向LSTM实现时间序列预测(负荷预测)
  5. PyTorch搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
  6. PyTorch搭建LSTM实现多变量多步长时间序列预测(二):单步滚动预测
  7. PyTorch搭建LSTM实现多变量多步长时间序列预测(三):多模型单步预测
  8. PyTorch搭建LSTM实现多变量多步长时间序列预测(四):多模型滚动预测
  9. PyTorch搭建LSTM实现多变量多步长时间序列预测(五):seq2seq
  10. PyTorch中实现LSTM多步长时间序列预测的几种方法总结(负荷预测)
  11. PyTorch-LSTM时间序列预测中如何预测真正的未来值
  12. PyTorch搭建LSTM实现多变量输入多变量输出时间序列预测(多任务学习)
  13. PyTorch搭建ANN实现时间序列预测(风速预测)
  14. PyTorch搭建CNN实现时间序列预测(风速预测)
  15. PyTorch搭建CNN-LSTM混合模型实现多变量多步长时间序列预测(负荷预测)
  16. PyTorch搭建Transformer实现多变量多步长时间序列预测(负荷预测)
  17. PyTorch时间序列预测系列文章总结(代码使用方法)
  18. TensorFlow搭建LSTM实现时间序列预测(负荷预测)
  19. TensorFlow搭建LSTM实现多变量时间序列预测(负荷预测)
  20. TensorFlow搭建双向LSTM实现时间序列预测(负荷预测)
  21. TensorFlow搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
  22. TensorFlow搭建LSTM实现多变量多步长时间序列预测(二):单步滚动预测
  23. TensorFlow搭建LSTM实现多变量多步长时间序列预测(三):多模型单步预测
  24. TensorFlow搭建LSTM实现多变量多步长时间序列预测(四):多模型滚动预测
  25. TensorFlow搭建LSTM实现多变量多步长时间序列预测(五):seq2seq
  26. TensorFlow搭建LSTM实现多变量输入多变量输出时间序列预测(多任务学习)
  27. TensorFlow搭建ANN实现时间序列预测(风速预测)
  28. TensorFlow搭建CNN实现时间序列预测(风速预测)
  29. TensorFlow搭建CNN-LSTM混合模型实现多变量多步长时间序列预测(负荷预测)

II. 多模型滚动预测

所谓多模型滚动预测:还是前10个预测后3个为例:首先需要按照多模型单步预测的方式训练3个模型,然后模型1利用[1…10]预测[11’],然后模型2利用[2…10 11’]预测[12’],最后由模型3利用[3…10 11’ 12’]预测[13’]。

III. 代码实现

3.1 数据处理

我们根据前24个时刻的负荷以及该时刻的环境变量来预测接下来12个时刻的负荷(步长pred_step_size可调)。

数据处理代码和前面的多模型单步预测一致。简单来说,如果需要利用前24个值预测接下来12个值,那么我们需要生成12个数据集。

3.2 模型搭建

模型和之前的文章一致:

class LSTM(nn.Module):def __init__(self, input_size, hidden_size, num_layers, output_size, batch_size):super().__init__()self.input_size = input_sizeself.hidden_size = hidden_sizeself.num_layers = num_layersself.output_size = output_sizeself.num_directions = 1 # 单向LSTMself.batch_size = batch_sizeself.lstm = nn.LSTM(self.input_size, self.hidden_size, self.num_layers, batch_first=True)self.linear = nn.Linear(self.hidden_size, self.output_size)def forward(self, input_seq):batch_size, seq_len = input_seq.shape[0], input_seq.shape[1]h_0 = torch.randn(self.num_directions * self.num_layers, self.batch_size, self.hidden_size).to(device)c_0 = torch.randn(self.num_directions * self.num_layers, self.batch_size, self.hidden_size).to(device)output, _ = self.lstm(input_seq, (h_0, c_0))pred = self.linear(output)pred = pred[:, -1, :]return pred

3.3 模型训练/测试

模型训练与多模型单步预测一致。

模型测试与单步滚动预测有些类似,但每一步都由不同的模型来进行预测。

3.4 实验结果

前24个预测未来12个,每个模型训练50轮,效果很差,MAPE为13.26%,还需要进一步完善。

IV. 源码及数据

后面将陆续公开~

PyTorch搭建LSTM实现多变量多步长时间序列预测(四):多模型滚动预测相关推荐

  1. TensorFlow搭建LSTM实现多变量时间序列预测(负荷预测)

    目录 I. 前言 II. 数据处理 III. LSTM模型 IV. 训练/测试 V. 源码及数据 I. 前言 在前面的一篇文章TensorFlow搭建LSTM实现时间序列预测(负荷预测)中,我们利用L ...

  2. 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 在https://blog.csdn.net/A ...

  3. 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 提起LSTM大家第一反应是在NLP的数据集上比较 ...

  4. TensorFlow搭建LSTM实现时间序列预测(负荷预测)

    目录 I. 前言 II. 数据处理 III. 模型 IV. 训练/测试 V. 源码及数据 I. 前言 前面已经写过不少时间序列预测的文章: 深入理解PyTorch中LSTM的输入和输出(从input输 ...

  5. PyG Temporal搭建STGCN实现多变量输入多变量输出时间序列预测

    目录 I. 前言 II. STGCN III. PyG Temporal IV. 模型训练/测试 V. 代码 I. 前言 前面已经写过不少时间序列预测的文章: 深入理解PyTorch中LSTM的输入和 ...

  6. 基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码)

    系列文章目录 lstm系列文章目录 1.基于pytorch搭建多特征LSTM时间序列预测代码详细解读(附完整代码) 2.基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码 ...

  7. 深度学习实战(2)用Pytorch搭建双向LSTM

    用Pytorch搭建双向LSTM 应最近的课程实验要求,要做LSTM和GRU的实验效果对比.LSTM的使用和GRU十分相似,欢迎参考我的另外一篇介绍搭建双向GRU的Blog:https://blog. ...

  8. 使用 LSTM 进行多变量时间序列预测的保姆级教程

    来源:DeepHub IMBA 本文约3800字,建议阅读10分钟本文中我们将使用深度学习方法 (LSTM) 执行多元时间序列预测. 使用 LSTM 进行端到端时间序列预测的完整代码和详细解释. 我们 ...

  9. 使用 LSTM 进行多变量时间序列预测

    使用 LSTM 进行端到端时间序列预测的完整代码和详细解释. 在本文中我们将使用深度学习方法 (LSTM) 执行多元时间序列预测. 我们先来了解两个主题-- 什么是时间序列分析? 什么是 LSTM? ...

  10. RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

    全文链接:http://tecdat.cn/?p=25133 2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能(点 ...

最新文章

  1. 机器学习类别/标称(categorical)数据处理:目标编码(target encoding)
  2. 浙江文成“红领巾”向交警敬礼:上下学感谢有你
  3. PLSQL远程连接oracle数据库
  4. docker安装nexus3命令
  5. leetcode435. 无重叠区间
  6. java并发临界资源管理
  7. MTK 驱动开发(42)---GAT 工具使用
  8. Centos之常用命令
  9. zookeeper分布式原理实战解析
  10. 石川:股票多因子模型的回归检验
  11. android device id修改器,修改硬盘ID硬盘序列号工具(Serial Number Changer)
  12. 计算机视觉的测试数据集,自动驾驶数据集整理
  13. cad查看_天正电气CAD教程之标注实例讲解
  14. MySQL卸载不干净问题,connector net卸不掉
  15. 最新服务器处理器天梯,服务器cpu天梯图2020 至强处理器天梯排名
  16. SU-03T语音模块的使用(小智语音控制LED灯)
  17. 黑客捣毁了个暗网杀手网站,却险些触发了世界各地的多起杀戮...
  18. 【awk】awk 常用命令
  19. 爬虫速成(二):数据获取
  20. 如何计算 R 语言中的 Z 分数

热门文章

  1. 商品库存清单案例java_JAVA实现简单的商城库存清单
  2. win10你需要计算机管理员提供的权限才能操作,Win10修改或删除文件提示“你需要权限能才能执行此操作”怎么办...
  3. java calendar星期_作业-用Calendar获取今天是星期几
  4. 开机黑屏,硬盘灯不亮,没有自检画面,进不去bios
  5. 春节快过腻了?不妨关心下太空探索
  6. 回头再学Java系列-前言
  7. QLabel文字过长显示不全处理方法
  8. ultravnc 设置代理_选择代理记账有何好处及注意事项
  9. 爱加密加密Android apk 使用步骤
  10. 人生苦短_人生苦短的说说、句子及图片