如何使用时间序列数据训练和预测Keras LSTM?

时间:2016-12-07 16:31:41

标签: python keras lstm

我已经想出如何使用值训练LSTM,但如果我想要包含时间,数据会是什么样子?也许输入维度为2,时间为纪元秒和标准化值?数据可能存在时间差,我希望培训能够反映出来。

假设我只是想定期训练LSTM,因为这是一项昂贵的操作,您将如何预测未来的值与上次训练时间和第一次预测时间之间的差距?例如,让我说3天前我训练了LSTM,但现在我想预测第二天的值。

到目前为止,我所有的工作都基于这篇文章:http://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/。但它并没有涵盖这些问题。

1 个答案:

答案 0 :(得分:3)

我认为你可以在构建训练集时处理这种情况,至少如果最后一个值(在输入序列中)和预测值之间的时间延迟是固定的。

让X_train具有维度:(nb_samples,timesteps,input_dim)和y_train具有维度(n_samples,output_dim)。设x是一个训练输入样本。它对应于具有维度的多变量时间序列(timesteps,input_dim)。它的相应输出是y with dimension(output_dim)。

在y中,您将值设置为预测哪个可以在x中的最后一个值之后3天,LSTM“应该”掌握时间依赖性。因此,如果输入中的最后一个值与要预测的值之间的时间延迟是固定的,那么这应该有效。

出现这种问题的情况如下:https://challengedata.ens.fr/en/challenge/9/prediction_of_transaction_volumes_in_financial_markets.html