使用LSTM的多个输入对时间序列进行多步预测

时间:2017-10-30 19:33:17

标签: python deep-learning time-series keras lstm

我是深度学习和LSTM网络的新手,我想知道它们是否适合我的问题。 我的参考示例是这个(https://groups.google.com/d/msg/keras-users/9GsDwkSdqBg/kV1Ep9E_BAAJ)。 所以我有一组用户的信息(~500)。对于他们每个人,我知道,在25天的时间段内,有两个分数:1和2。

Two time series trend

我的目标是在给定的一天 n 预测下一个 d 天的得分1。 (请忘记2趋势似乎相关,因为它不是典型的情况)。从我读到的关于LSTM的内容来看,关键部分是以正确的方式塑造数据。

我的初始输入,每个用户都是50个值的矢量(25分1和25分2):

User 1: | SC1(1) | SC1(2) | SC1(3)| ... | SC1(25) | SC2(1) | SC2(2) | SC2(3) | ... | SC2(25) |
User 2: | SC1(1) | SC1(2) | SC1(3)| ... | SC1(25) | SC2(1) | SC2(2) | SC2(3) | ... | SC2(25) |
...

其中 SC1(1)表示时间点1的得分为1。 然后,我会将数据分成90%来训练模型,将10%分开来评估它。

所以考虑到我的训练集(450个样本),输入 X 和目标 y ,假设我想回顾过去3个时间点,并预测接下来的3,看起来像:

X:                                          Y:
|SC1(1)|SC1(2)|SC1(3)|SC2(1)|SC2(2)|SC2(3)|    |SC1(4)|SC1(5)|SC1(6)|
|SC1(2)|SC1(3)|SC1(4)|SC2(2)|SC2(3)|SC2(4)|    |SC1(5)|SC1(6)|SC1(7)|
|SC1(3)|SC1(4)|SC1(5)|SC2(3)|SC2(4)|SC2(5)|    |SC1(6)|SC1(7)|SC1(8)|
                  ...
|SC1(20)|SC1(21)|SC1(22)|SC2(22)|SC2(21)|SC2(20)|   |SC1(23)|SC1(24)|SC1(25)|

我现在的问题是:

1)数据是否以正确的格式分割和排列(使用Keras进行处理)?

2)我只需要回顾我想要向前推进的内容吗?如果没有,这些值是否有经验法则?

3)在属于不同用户的数据序列上训练网络是否有意义? (即 X 将被定义为所有用户生成的3个步骤的所有可能序列的集合)

0 个答案:

没有答案