LSTM-多元时间序列预测

时间:2018-07-06 18:35:25

标签: python keras time-series lstm

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

我已经阅读了整个教程,并陷入了如下问题-

在本教程中,训练和测试拆分具有8个功能,分别是:“污染”,“露水”,“温度”,“压力”,“ wnd_dir”,“ wnd_spd”,“雪”和“雨”步骤“ t-1”,而输出特征在当前步骤“ t”为“污染”。 这是因为,给定前一小时/时间步骤“ t-1”的污染和天气测量结果,将数据集作为监督学习问题的框架是关于预测当前小时/时间步骤“ t”的“污染”。 / p>

将模型拟合到训练和测试数据分割之后,如果我要对具有7个特征的新数据集进行预测怎么办,因为它不具有“污染”特征,而我只想对此预测使用其他7个功能。

感谢您的帮助!

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

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

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

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

那我应该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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池或任何删除步长维度的东西。


如果您根本没有任何污染数据需要培训,那么您就不能这样做。