基于pytorch的lstm时间回归预测(附全部代码)

首先说明作者是神经网络纯新手,虽然之前用过神经网络的代码,但基本上都是各种copy,只搞清楚了input_size和output_size,这两天因为工作需要要跑一个lstm的回归预测,在网上找的教程都不太清楚,对新手不是很友好,对新手友好的好像好多都是错的,自己也想了很久才想明白lstm回归预测到低是什么情况,跟大家分享一下,如果有错误也希望大家能指正。

首先是lstm的一张图,引自LSTM神经网络输入输出究竟是怎样的?,建议看本文章之前先找几个教程把lstm搞懂,我个人觉得lstm懂了的标志就是下面这张图你看懂了。

preview

首先,厘清一下本文所针对的任务,多特征的时间序列回归预测,再说直白一点,数据长成这个样子

 简单来说就是n*m的ndarray,n表示时间序列的长度,m表示每一个时间点的feature,我图中的数据来自LSTM入门例子:根据前9年的数据预测后3年的客流(PyTorch实现),准确来说,这个数据也不是来自于这个作者,是一个经典的“航空客流预测”任务。这个作者应该是个机器学习的大佬,这篇文章很值得一读,但是估计新手也读不太懂,我纯新手反正一开始是没搞懂,但是非常不建议去看这篇文章的原版,因为原版完全是个错误例子。

因为是小白向我就不先说错误例子怎么做的了,只说一个最关键的点,“航空客流预测”任务中,时间序列很短只有100多个长度,完全可以一次性放进长度为100多的lstm里面训练,但是通常的时间回归预测任务里面,时间长度很多,势必要分成很多个定长的序列,然后再送进去训练。这一点也是最误解我的,我想了半天都想不通time_step到低去哪了,事实上分成训练集之后的时间序列数据本身长度就是那个time_step。(当然也可以不定长,事

  • 12
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值