使用 LSTM 和 Keras 进行时间序列预测的不同大小的预测器
Predictors of different size for time series prediction using LSTM with Keras
我想使用另一个时间序列 Y
和 X
的过去值来预测时间序列值 X
。详细地说,我想在时间 t 预测 X (Xt
) 使用 (Xt-p
,...,Xt-1
) 和 (Yt-p
,...,Yt-1
,Yt
) p "look back" 的维度。
所以,我的问题是我的 2 个预测变量的长度不同。
让我们用一个例子来更清楚。
如果我使用 2 的时间步长,我将进行一次观察:
[(Xt-p,Yt-p),...,(Xt-1,Yt-1),(??,Yt)]
作为输入,Xt
作为输出。我不知道用什么代替 ??
我知道从数学上讲我的预测变量需要相同的长度,所以我正在寻找一个值来替换缺失值。
我真的不知道这里是否有好的解决方案,如果我能解决一些问题,我们将不胜感激。
干杯!
PS : 你可以看到我的问题,好像我想利用第二天的天气预报提前预测一个城市一天的冰淇淋销售数量。 X
是冰淇淋的数量,Y
是温度。
你可以,例如执行以下操作:
input_x = Input(shape=input_shape_x)
input_y = Input(shape=input_shape_y)
lstm_for_x = LSTM(50, return_sequences=False)(input_x)
lstm_for_y = LSTM(50, return_sequences=False)(input_y)
merged = merge([lstm_for_x, lstm_for_y], mode="concat") # for keras < 2.0
merged = Concatenate([lstm_for_x, lstm_for_y])
output = Dense(1)(merged)
model = Model([x_input, y_input], output)
model.compile(..)
model.fit([X, Y], X_next)
其中 X
是序列数组,X_forward
是 X
p
步,Y
是 Ys
。
我想使用另一个时间序列 Y
和 X
的过去值来预测时间序列值 X
。详细地说,我想在时间 t 预测 X (Xt
) 使用 (Xt-p
,...,Xt-1
) 和 (Yt-p
,...,Yt-1
,Yt
) p "look back" 的维度。
所以,我的问题是我的 2 个预测变量的长度不同。
让我们用一个例子来更清楚。
如果我使用 2 的时间步长,我将进行一次观察:
[(Xt-p,Yt-p),...,(Xt-1,Yt-1),(??,Yt)]
作为输入,Xt
作为输出。我不知道用什么代替 ??
我知道从数学上讲我的预测变量需要相同的长度,所以我正在寻找一个值来替换缺失值。
我真的不知道这里是否有好的解决方案,如果我能解决一些问题,我们将不胜感激。
干杯!
PS : 你可以看到我的问题,好像我想利用第二天的天气预报提前预测一个城市一天的冰淇淋销售数量。 X
是冰淇淋的数量,Y
是温度。
你可以,例如执行以下操作:
input_x = Input(shape=input_shape_x)
input_y = Input(shape=input_shape_y)
lstm_for_x = LSTM(50, return_sequences=False)(input_x)
lstm_for_y = LSTM(50, return_sequences=False)(input_y)
merged = merge([lstm_for_x, lstm_for_y], mode="concat") # for keras < 2.0
merged = Concatenate([lstm_for_x, lstm_for_y])
output = Dense(1)(merged)
model = Model([x_input, y_input], output)
model.compile(..)
model.fit([X, Y], X_next)
其中 X
是序列数组,X_forward
是 X
p
步,Y
是 Ys
。