LSTM-如何同时使用未来信息和过去信息作为预测未来的输入

时间:2019-07-13 15:02:05

标签: python keras neural-network time-series lstm

我有一个多元时间序列问题。数据集是这样的

    date   | price | demand
 2017/01/01 |   30  |   3
 2017/01/02 |   20  |   4
    ...       ...     ...
 2019/06/01 |   50  |   1

我想预测在给定价格下2019/06/02的需求是多少。但是,在我在线上找到的内核中,此问题通常如下表述。

假设我要使用前2天来预测第t天的需求,那么输入将是

price(t-2) demand(t-2) | price(t-1) demand(t-1) | demand(t) 

其中需求(t)是输出。

但是,这忽略了第t天的价格。我不确定如何将t天的价格作为另一个输入与过去的销售信息连接起来,以预测t天的需求。听说可以添加另一层以将第t天的价格考虑在内。但是我不确定该怎么做以及输入数据是什么样的。

下面提供了我现在的代码。

n=3
epochs = 100
batch_size=10
learning_rate = 0.002

model = Sequential()
model.add(LSTM(n, input_shape=(train_X.shape[1], train_X.shape[2])))
sgd = SGD(lr=learning_rate,nesterov=False)
# , dropout=0.2
model.add(Dense(1))
model.compile(loss='mae', optimizer=sgd)

history = model.fit(train_X, train_y, epochs=epochs, batch_size=batch_size, validation_data=(test_X, test_y), verbose=2, 
                shuffle=False)`

0 个答案:

没有答案