我试着用LSTM做商店销售预测。以下是我的原始数据的样子:
| Date | StoreID | Sales | Temperature | Open | StoreType |
|------------|---------|-------|-------------|---------|-----------|
| 01/01/2016 | 1 | 0 | 36 | 0 | 1 |
| 01/02/2016 | 1 | 10100 | 42 | 1 | 1 |
| ...
| 12/31/2016 | 1 | 14300 | 39 | 1 | 1 |
| 01/01/2016 | 2 | 25000 | 46 | 1 | 3 |
| 01/02/2016 | 2 | 23700 | 43 | 1 | 3 |
| ...
| 12/31/2016 | 2 | 20600 | 37 | 1 | 3 |
| ...
| 12/31/2016 | 10 | 19800 | 52 | 1 | 2 |我需要预测未来10天的销售额。在这个例子中,我需要预测从01-01-2017到01-10-2017的商店销售额。我知道如何使用其他时间序列模型或回归模型来解决这个问题,但我想知道RNN是否是一个很好的选择。
首先,我只使用 storeID=1 data来测试LSTM。如果我的数据只有日期和销售。我将以这种方式构造我的trainX和trainY (如果我错了,请纠正我):
Window = 20
Horizon = 10
| trainX | trainY |
| [Yt-10, Yt-11, Yt-12,...,Yt-29] | [Yt, Yt-1, Yt-2,...,Yt-9] |
| [Yt-11, Yt-12, Yt-13,...,Yt-30] | [Yt-2, Yt-3, Yt-4,...,Yt-10] |
| [Yt-12, Yt-13, Yt-14,...,Yt-31] | [Yt-3, Yt-4, Yt-5,...,Yt-11] |
...在重新塑造两人之后
trainX.shape
(300, 1, 20)
trainY.shape
(300, 10)Question1:在本例中是,示例、时间步骤、特性= 300、1、20,对吗?或者我应该将样本构造为300,20,1?
Question2:我确实想使用原始数据中的其他信息,如温度、StoreType等。我应该如何构造LSTM的输入数据?
Question3:到目前为止,我们只讨论了一个商店预测,如果我想对所有商店进行预测,那么应该如何构造我的输入数据呢?
目前,我正在从这里中获取示例,但似乎还不足以涵盖我所拥有的场景。我真的很感激你的帮助!
发布于 2017-03-04 18:12:04
我最近在解决类似的问题。就你而言:
(300, 20, 1) --因为您有长度为20的时间序列和1功能。PCA,其中行是日销售额。更新:
为了处理多个顺序特性,您可以执行以下操作:
sequential_input = Input(shape=(20, nb_of_sequental_features))
feature_input = Input(shape=(feature_nb,))
lstm_layer = LSTM(lstm_units_1st_layer, return_sequences=True)(sequential_input)
lstm_layer = LSTM(lstm_units_2nd_layer, return_sequences=True)(lstm_layer)
...
lstm_layer = LSTM(lstm_units_nth_layer, return_sequences=False)(lstm_layer)
merged = merge([lstm_layer, feature_input], mode='concat')
blend = Dense(blending_units_1st_layer, activation='relu')(merged)
blend = Dense(blending_units_2nd_layer, activation='relu')(blend)
...
output = Dense(10)(blend)
model = Model(input=[sequential_input, feature_input], output=output])在这种情况下,您的输入应该由两个表组成:[sequential_data, features],sequential_data.shape = (nb_of_examples, timesteps, sequential_features)和features.shape = (nb_of_examples, feature_nb)。因此,sales或temperature应该存储在sequential_features中,store_type存储在features中。
https://stackoverflow.com/questions/42585356
复制相似问题