【问题标题】:LSTM - Multivariate Time Series PredictionsLSTM - 多元时间序列预测
【发布时间】:2018-07-06 18:35:24
【问题描述】:

我正在阅读关于在 Keras 中使用 LSTM 进行多变量时间序列预测的教程 https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/#comment-442845

我已经完成了整个教程,但遇到了一个问题,如下所示-

在本教程中,训练和测试拆分有 8 个特征,即'pollution'、'dew'、'temp'、'press'、'wnd_dir'、'wnd_spd'、'snow'、'rain' at步骤't-1',而当前步骤't'的输出特征是'污染'。 这是因为,考虑到前一小时/时间步“t-1”的污染和天气测量,将数据集构建为监督学习问题是关于预测当前小时/时间步“t”的“污染”

在将模型拟合到训练和测试数据拆分后,如果我想对具有 7 个特征的新数据集进行预测,因为它没有“污染”特征,我明确地只想预测这个使用其他 7 个功能。

感谢您的帮助!

我该如何处理这种情况? (而其余 7 个功能保持不变)

编辑- 假设我的数据集在训练/拟合模型时具有以下 3 个特征- shop_number, item_number, number_of_units_sold

之后,我训练了 LSTM 模型,我得到了一个具有以下特征的数据集 - “shop_number”和“item_number”。 数据集没有“number_of_units_sold”。

“LSTM”中的“input_shape”参数在训练时将 1 作为时间步长,将 3 作为特征。 但是在预测时,我有 1 个时间步长,但只有 2 个特征(因为我必须预测 'number_of_units_sold')。

那我应该怎么做呢?

【问题讨论】:

  • 我真的很喜欢那个博客。我不认为它会为此工作。 LSTM 的输入形状 = (1, 8)。
  • 那么我们如何对不属于数据集的新数据进行预测呢?或者我们是否仅限于对我们拥有的数据集而不是任何新的外国数据进行预测?

标签: python keras time-series lstm


【解决方案1】:

如果污染是最后一个特征:

X = original_data[:,:,:-1]
Y = original_data[:,:,-1:]

如果污染是第一特征

X = original_data[:,:,1:]
Y = original_data[:,:,:1]

否则

i = index_of_pollution_feature
X = np.concatenate([original_data[:,:,:i], original_data[:,:,i+1:],axis=-1)
Y = original_data[:,:,i:i+1]

使用return_sequences=Truestative=False 制作模型,仅此而已。 不要使用 Flatten、Global poolings 或任何删除 step 维度的东西。


如果您根本没有任何污染数据用于训练,那么您就做不到。

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 2018-09-22
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多