用于时间序列的深度学习 Keras 简单 RNN,预测多个
Posted
技术标签:
【中文标题】用于时间序列的深度学习 Keras 简单 RNN,预测多个【英文标题】:Deep Learning Keras Simple RNN for Time Series, predict multiple 【发布时间】:2020-04-22 12:02:05 【问题描述】:我对深度学习很陌生,因此研究了如何使用 Keras 解决时间序列问题。然而,这些是完全不同的。 让我解释一下我在 Python 中的问题: 附加enter image description here 我有一个数据框:行代表美国的每个城市(行=样本),每列代表 1985-2018 年之间的时间序列,显示每年的平均温度(列=每年的平均温度)-因此,年份的时间序列是一个单独的特征列。
现在的任务是预测每个城市 2019 年、2020 年、2021 年、2022 年的温度。
为此,我想应用滚动窗口技术。
1)现在,要在 Python Keras 中应用简单 RNN,我将如何构造输入和输出维度? X_train 需要是 X.shape=(cities, time_steps,features) 还是实际上是 4-dim: (number_of_batches,time_steps,features*cities)?
尤其是,我如何构建模型来预测每个城市的每年?
我不明白这个问题。 非常感谢您的帮助!
enter code here
【问题讨论】:
请将您的示例数据发布为文本而不是图像 【参考方案1】:首先,您必须正确定义您的问题,即输入、输出和特征。 关于您的第一个问题,Keras 3d 输入形状定义为 (batch_size, timesteps, features),其中 batch_size 是模型在反向传播之前看到的观察次数(您必须优化此超参数),timesteps 是在您的数据中排序。在您的情况下,您可以使用 1. Features 是您正在使用的功能数量。从您显示的数据图像中,我假设您仅使用城市的温度作为特征。
当您转置数据表时,这会变得更加直观。因此,您的输入形状可能是这个 Xshape = (10, 1, 6)。
对于您的第二个问题,我建议您遵循this website 上众多出色的时间序列预测之一。
【讨论】:
感谢您的回复!我以为每年都是一个特征,所以33个特征?如果我创建一个大小为 4 的窗口,那么以 1985-1988 来预测 1989 等等会怎样?为什么 6 作为特征尺寸?我想在每个城市的窗口大小之后预测每年的温度...... 缩小问题的大小可以帮助您理解术语。以洛杉矶的时间序列为例。每个时间步长都被认为是对洛杉矶温度的观察。在 1985 年,您采样了 27 个。当您保持采样温度时,您创建了一个时间序列或特征序列。您可以将特征视为输入数据之一的特定类别。现在,根据 LA 的温度历史,您可以预测 2019 年 LA 的温度。最后,如果您认为其他城市的温度可以帮助您预测输出,您可以将它们添加为额外特征,因此6.以上是关于用于时间序列的深度学习 Keras 简单 RNN,预测多个的主要内容,如果未能解决你的问题,请参考以下文章