当前位置:   article > 正文

简单的lstm时间序列预测-已经开源[Keras版本][开源进行中]_lstm预测开源数据集

lstm预测开源数据集

网上有很多关于lstm时间序列的博客,我从不同博客那里借鉴了许多。

理论知识:

 

项目已开源上传到gitee上:

时间序列预测仓库: 本项目从简单入门到涉及部分高级预测代码,正在维护中,涉及单变量单步预测,单变量多步预测,以及多变量单步预测,多变量多步预测。 (gitee.com)

1.首先是构建时间序列数据,然后转化为监督学习数据集。

series_to_supervised()函数

  1. from pandas import DataFrame
  2. from pandas import concat
  3. def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):
  4. """
  5. Frame a time series as a supervised learning dataset.
  6. Arguments:
  7. data: Sequence of observations as a list or NumPy array.
  8. n_in: Number of lag observations as input (X).
  9. n_out: Number of observations as output (y).
  10. dropnan: Boolean whether or not to drop rows with NaN values.
  11. Returns:
  12. Pandas DataFrame of series framed for supervised learning.
  13. """
  14. n_vars = 1 if type(data) is list else data.shape[1]
  15. df = DataFrame(data)
  16. cols, names = list(), list()
  17. # input sequence (t-n, ... t-1)
  18. for i in range(n_in, 0, -1):
  19. cols.append(df.shift(i))
  20. names += [('var%d(t-%d)' % (j+1, i)) for j in range(n_vars)]
  21. # forecast sequence (t, t+1, ... t+n)
  22. for i in range(0, n_out):
  23. cols.append(df.shift(-i))
  24. if i == 0:
  25. names += [('var%d(t)' % (j+1)) for j in range(n_vars)]
  26. else:
  27. names += [('var%d(t+%d)' % (j+1, i)) for j in range(n_vars)]
  28. # put it all together
  29. agg = concat(cols, axis=1)
  30. agg.columns = names
  31. # drop rows with NaN values
  32. if dropnan:
  33. agg.dropna(inplace=True)
  34. return agg

 2.

Reference

6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现 - 知乎 (zhihu.com) 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/131358
推荐阅读
相关标签
  

闽ICP备14008679号