我已经建立了一个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
有时24
和25
。
我究竟能在某个时间将其明确地注入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
时这样做(或者即便如此)是对的。)
答案 0 :(得分:0)
我认为 clean 这样做的方法是引入2*look_ahead
个新功能,其中每个0 <= i < look_ahead
2*i
- 功能是指示是否i
- 时间步长的值已知且(2*i+1)
- th是值本身(如果不知道则为0)。因此,您可以生成具有这些功能的培训数据,以使您的模型考虑这些已知值。