Keras LSTM:将已知的* future *值注入预测

时间:2017-07-04 10:29:40

标签: machine-learning deep-learning keras lstm

我已经建立了一个LSTM In Keras,其目标是从高维,时间索引输入预测时间序列的未来值。

但是,有一个独特的要求:对于未来的某些时间点,我们肯定知道输入系列的某些值是什么。例如:

model = SomeLSTM()
trained_model = model.train(train_data)
known_data = [(24, {feature: 2, val: 7.0}), (25, {feature: 2, val: 8.0})]
predictions = trained_model(look_ahead=48, known_data=known_data)

哪个会训练模型到时间t(训练结束),并从时间48预测前进t时间段,但用known_data值代替feature有时2425

我究竟能在某个时间将其明确地注入LSTM吗?

供参考,这是模型:

model = Sequential()
model.add(LSTM(hidden, input_shape=(look_back, num_features)))
model.add(Dropout(dropout))
model.add(Dense(look_ahead))
model.add(Activation('linear'))

这可能是我对LSTM不直观掌握的结果,我很感激任何澄清。我已经深入研究了Keras源代码,我的第一个猜测就是将它直接注入到LSTM state变量中,但我不确定如何在t时这样做(或者即便如此)是对的。)

1 个答案:

答案 0 :(得分:0)

我认为 clean 这样做的方法是引入2*look_ahead个新功能,其中每个0 <= i < look_ahead 2*i - 功能是指示是否i - 时间步长的值已知且(2*i+1) - th是值本身(如果不知道则为0)。因此,您可以生成具有这些功能的培训数据,以使您的模型考虑这些已知值。