具有一个序列特征和3个当前特征的LSTM

时间:2017-12-11 08:56:17

标签: python keras lstm

我对使用LSTM模型预测销售有疑问。 要构建模型,我想输入以前的销售值(选择样本大小为30),以及当前(t)功能,例如是否在促销,是否是假期等。我当前的代码:

def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset)-look_back-1):
    a = dataset[i:(i+look_back), 0]
    dataX.append(a)
    dataY.append(dataset[i + look_back, 0])
return np.array(dataX), np.array(dataY)

look_back = 30
trainX, trainY = create_dataset(train, look_back)
valX, valY = create_dataset(val, look_back)

# note: train and val dataset here only include sale values

trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))
valX = np.reshape(valX, (valX.shape[0], 1, valX.shape[1]))

我创建了n * 30个数据集(30列)。然后我申请进入keras LSTM模型。但是,我如何将当前特征(不是时间序列)作为输入包含在模型中?

1 个答案:

答案 0 :(得分:1)

如果您以非顺序方式构建模型,使用功能API可以有多个输入。然后,您可以使用lstm处理时间序列,并使用当前特征在一些密集层中处理输入。然后,在进行预测之前,将它们合并并使用一些更密集的图层作为示例。

可以在https://keras.io/getting-started/functional-api-guide/

下找到一些示例