【发布时间】:2019-06-07 09:15:03
【问题描述】:
我正在对一家使用 Keras LSTM 的公司的每日销售数据进行预测。数据的原始形状是[60 家商店 x 1034 天 x 207 种产品]。我创建了 One-hot 表示的日子,例如:
- 星期一 1 0 0 0 0 0 0
- 星期二 0 1 0 0 0 0 0
- 星期三 0 0 1 0 0 0 0
- 星期四 0 0 0 1 0 0 0
- 星期五 0 0 0 0 1 0 0
- 星期六 0 0 0 0 0 1 0
- 星期日 0 0 0 0 0 0 1
此代表添加到所有商店的日期,因此形状新形状为 [60 个商店 x 1034 天 x(207 个产品 + 7 天)]
我又添加了一个名为 S_day 的列,用于表示具有重要意义的日子,其值为 0 或 1。
所以数据的最终维度是 [60 x 1034 x 215]。
我使用训练前 973 天和测试每个商店的最后 61 天。
train_x [60 x 973 x 215]
train_y [60 x 973 x 215]
test_x [60 x 973 x 215](数据形状为 [60 x 61 x 215],但我们填充零以匹配形状)
test_y [60 x 973 x 215](数据形状为 [60 x 61 x 215] 但我们填充零以匹配形状)
y 数据是 x 数据,延迟 -1 以作为第二天的预测目标。
我的问题是我需要从我的最终预测中排除这 8 个额外的列。
# design model
model = Sequential()
model.add(LSTM(100, input_shape=(train_x.shape[1], train_x.shape[2]), return_sequences=True))
model.add(Dense(train_x.shape[2]))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
# fit model
history = model.fit(train_x, train_y,
epochs=10,
batch_size=2,
validation_data=(test_x, test_y),
verbose=2,
shuffle=False)
# make a prediction
test_pred = model.predict(test_x)
【问题讨论】:
标签: python tensorflow keras lstm prediction