PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)
目录
- I. 前言
- II. 数据处理
- III. LSTM模型
- IV. 训练/测试
- V. 源码及数据
I. 前言
在前面的一篇文章PyTorch搭建LSTM实现时间序列预测(负荷预测)中,我们利用LSTM实现了负荷预测,但我们只是简单利用负荷预测负荷,并没有利用到其他一些环境变量,比如温度、湿度等。
本篇文章主要考虑用PyTorch搭建LSTM实现多变量时间序列预测。
系列文章:
- 深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)
- PyTorch搭建LSTM实现时间序列预测(负荷预测)
- PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)
- PyTorch搭建双向LSTM实现时间序列预测(负荷预测)
- PyTorch搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
- PyTorch搭建LSTM实现多变量多步长时间序列预测(二):单步滚动预测
- PyTorch搭建LSTM实现多变量多步长时间序列预测(三):多模型单步预测
- PyTorch搭建LSTM实现多变量多步长时间序列预测(四):多模型滚动预测
- PyTorch搭建LSTM实现多变量多步长时间序列预测(五):seq2seq
- PyTorch中实现LSTM多步长时间序列预测的几种方法总结(负荷预测)
- PyTorch-LSTM时间序列预测中如何预测真正的未来值
- PyTorch搭建LSTM实现多变量输入多变量输出时间序列预测(多任务学习)
- PyTorch搭建ANN实现时间序列预测(风速预测)
- PyTorch搭建CNN实现时间序列预测(风速预测)
- PyTorch搭建CNN-LSTM混合模型实现多变量多步长时间序列预测(负荷预测)
- PyTorch搭建Transformer实现多变量多步长时间序列预测(负荷预测)
- PyTorch时间序列预测系列文章总结(代码使用方法)
- TensorFlow搭建LSTM实现时间序列预测(负荷预测)
- TensorFlow搭建LSTM实现多变量时间序列预测(负荷预测)
- TensorFlow搭建双向LSTM实现时间序列预测(负荷预测)
- TensorFlow搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
- TensorFlow搭建LSTM实现多变量多步长时间序列预测(二):单步滚动预测
- TensorFlow搭建LSTM实现多变量多步长时间序列预测(三):多模型单步预测
- TensorFlow搭建LSTM实现多变量多步长时间序列预测(四):多模型滚动预测
- TensorFlow搭建LSTM实现多变量多步长时间序列预测(五):seq2seq
- TensorFlow搭建LSTM实现多变量输入多变量输出时间序列预测(多任务学习)
- TensorFlow搭建ANN实现时间序列预测(风速预测)
- TensorFlow搭建CNN实现时间序列预测(风速预测)
- TensorFlow搭建CNN-LSTM混合模型实现多变量多步长时间序列预测(负荷预测)
II. 数据处理
数据集为某个地区某段时间内的电力负荷数据,除了负荷以外,还包括温度、湿度等信息。
本文中,我们根据前24个时刻的负荷以及该时刻的环境变量来预测下一时刻的负荷。最终得到了batch_size=B的数据集Dtr、Val以及Dte,Dtr为训练集,Val为验证集,Dte为测试集。
任意输出Dte中的一条数据:
[(tensor([[0.3513, 0.0000, 0.9091, 0.0000, 0.6667, 0.3023, 0.2439],[0.3333, 0.0000, 0.9091, 0.0435, 0.6667, 0.3023, 0.2439],[0.3396, 0.0000, 0.9091, 0.0870, 0.6667, 0.3023, 0.2439],[0.3427, 0.0000, 0.9091, 0.1304, 0.6667, 0.3023, 0.2439],[0.3838, 0.0000, 0.9091, 0.1739, 0.6667, 0.3023, 0.2439],[0.3700, 0.0000, 0.9091, 0.2174, 0.6667, 0.3023, 0.2439],[0.4288, 0.0000, 0.9091, 0.2609, 0.6667, 0.3023, 0.2439],[0.4474, 0.0000, 0.9091, 0.3043, 0.6667, 0.3023, 0.2439],[0.4406, 0.0000, 0.9091, 0.3478, 0.6667, 0.3023, 0.2439],[0.4657, 0.0000, 0.9091, 0.3913, 0.6667, 0.3023, 0.2439],[0.4540, 0.0000, 0.9091, 0.4348, 0.6667, 0.3023, 0.2439],[0.4939, 0.0000, 0.9091, 0.4783, 0.6667, 0.3023, 0.2439],[0.4328, 0.0000, 0.9091, 0.5217, 0.6667, 0.3023, 0.2439],[0.4238, 0.0000, 0.9091, 0.5652, 0.6667, 0.3023, 0.2439],[0.4779, 0.0000, 0.9091, 0.6087, 0.6667, 0.3023, 0.2439],[0.4591, 0.0000, 0.9091, 0.6522, 0.6667, 0.3023, 0.2439],[0.4651, 0.0000, 0.9091, 0.6957, 0.6667, 0.3023, 0.2439],[0.5102, 0.0000, 0.9091, 0.7391, 0.6667, 0.3023, 0.2439],[0.5067, 0.0000, 0.9091, 0.7826, 0.6667, 0.3023, 0.2439],[0.4635, 0.0000, 0.9091, 0.8261, 0.6667, 0.3023, 0.2439],[0.4224, 0.0000, 0.9091, 0.8696, 0.6667, 0.3023, 0.2439],[0.3796, 0.0000, 0.9091, 0.9130, 0.6667, 0.3023, 0.2439],[0.3292, 0.0000, 0.9091, 0.9565, 0.6667, 0.3023, 0.2439],[0.2940, 0.0000, 0.9091, 1.0000, 0.6667, 0.3023, 0.2439]]), tensor([0.3675]))]
每一行对应一个时刻点的负荷以及环境变量,此时input_size=7。
III. LSTM模型
这里采用了深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)中的模型:
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(batch_size, seq_len, num_directions * hidden_size)output, _ = self.lstm(input_seq, (h_0, c_0)) # output(5, 30, 64)pred = self.linear(output) # (5, 30, 1)pred = pred[:, -1, :] # (5, 1)return pred
IV. 训练/测试
简单训练了30轮,MAPE为6.01%:
V. 源码及数据
后面将陆续公开~
PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)相关推荐
- TensorFlow搭建LSTM实现多变量时间序列预测(负荷预测)
目录 I. 前言 II. 数据处理 III. LSTM模型 IV. 训练/测试 V. 源码及数据 I. 前言 在前面的一篇文章TensorFlow搭建LSTM实现时间序列预测(负荷预测)中,我们利用L ...
- 基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码)
系列文章目录 lstm系列文章目录 1.基于pytorch搭建多特征LSTM时间序列预测代码详细解读(附完整代码) 2.基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码 ...
- 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 在https://blog.csdn.net/A ...
- 使用 LSTM 进行多变量时间序列预测的保姆级教程
来源:DeepHub IMBA 本文约3800字,建议阅读10分钟本文中我们将使用深度学习方法 (LSTM) 执行多元时间序列预测. 使用 LSTM 进行端到端时间序列预测的完整代码和详细解释. 我们 ...
- 使用 LSTM 进行多变量时间序列预测
使用 LSTM 进行端到端时间序列预测的完整代码和详细解释. 在本文中我们将使用深度学习方法 (LSTM) 执行多元时间序列预测. 我们先来了解两个主题-- 什么是时间序列分析? 什么是 LSTM? ...
- matlab负荷预测,负荷预测matlab
本文主要针对BP 神经网络 应用于电力系统短期负荷预测做了进一步的研究,并通过MATLAB设计BP神经 网络,仿真结果表明BP神经网络在短期负荷预测中的应用是可行的,能较好...... MATLAB ...
- 【数值预测案例】(6) LSTM、GRU 时间序列股票数据预测,附TensorFlow完整代码
大家好,今天和各位分享一下如何使用循环神经网络 LSTM 和 GRU 完成对股票数据的预测.GRU 是在 LSTM 基础上的简化,将 LSTM 内部的三个闸门简化成两个,往往 GRU 的计算效果会优于 ...
- Python——LSTM、GRU 时间序列股票数据预测(文末完整代码)
GRU 是在 LSTM 基础上的简化,将 LSTM 内部的三个闸门简化成两个,往往 GRU 的计算效果会优于 LSTM 目录 1. 导入工具包 2. 获取数据集 3. 数据预处理 4. 时间序列滑窗 ...
- Pytorch实现LSTM对股票进行多步预测
数据 输入特征可以根据实际情况进行选择,这里选择的输入为["收盘价","最高价","最低价"],对未来的收盘价进行预测. 数据处理 def ...
- 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 提起LSTM大家第一反应是在NLP的数据集上比较 ...
最新文章
- 一个检查分区内存并且发送邮件的shell脚本
- Caused by java.lang.UnsatisfiedLinkError Cannot load library
- 网络编程中的缓冲区溢出
- 暑假周总结七8.26
- 修改注册表 为右键添加快捷命令
- mysql 重复率高字段 索引_MySQL性能优化(二)索引优化
- 如何处理错误消息Unable to install breakpoint due to missing line number attributes
- Jquery跨域请求php数据(jsonp)
- 博士论文答辩||基于深度强化学习的复杂作业车间调度问题研究
- Windows下MongoDB下载,安装和初级使用
- nvidia jetson xavier打开风扇,并设置开机启动
- inflate的使用
- Word编号设置和跳到尾页快捷键
- 删除电脑中删不掉的文件或文件夹
- Python基础入门教学
- html实现跳跳棋游戏,原生JS实现的跳一跳小游戏完整实例
- 数组 reduce 简介及使用场景
- linux winscp 乱码,WinSCP无法登陆、乱码及关联Putty的设置
- 解决 TypeError: expected string or bytes-like object
- 如何自己动手给笔记本电脑增加内存
热门文章
- 基于成本效益的深度信任网络的智能LEACH的多级动态优化附Matlab代码
- HUNNU 11786 Sir Charles Antony Richard Hoare
- python_面向对象,以及类的相关知识
- 程序设计基础大作业:学生信息管理系统plus(彩色界面,登录功能,文件操作,多文件)
- 极小化极大;292Nim 游戏;bitset容器;464我能赢吗;486预测赢家
- 牛客IOI周赛20-普及组
- 网页播放全景视频和全景图片
- IT项目量化管理结构图
- Java程序员“金三银四“就一定要出去面试吗?
- Java实现 LeetCode 215. 数组中的第K个最大元素