具有多元时间序列的LSTM的训练/测试集拆分

时间:2018-12-18 14:27:40

标签: keras sequence padding lstm recurrent-neural-network

我正在尝试使用LSTM方法解决Python中多元数据的时间序列预测问题。

here中,作者解决了时间序列空气污染预测的问题。数据如下:

                    pollution  dew  temp   press wnd_dir  wnd_spd  snow  rain
date
2010-01-02 00:00:00      129.0  -16  -4.0  1020.0      SE     1.79     0     0
2010-01-02 01:00:00      148.0  -15  -4.0  1020.0      SE     2.68     0     0
2010-01-02 02:00:00      159.0  -11  -5.0  1021.0      SE     3.57     0     0
2010-01-02 03:00:00      181.0   -7  -5.0  1022.0      SE     5.36     1     0
2010-01-02 04:00:00      138.0   -7  -5.0  1022.0      SE     6.25     2     0 

与上述教程中的逐年相反,我对具有20多个功能的足球比赛进行了30秒的时间步长观察。每个具有唯一ID的匹配项的长度都在190到200之间。

作者按一年中的天数划分了火车/测试集,如下所示:

# split into train and test sets
values = reframed.values
n_train_hours = 365 * 24
train = values[:n_train_hours, :]
test = values[n_train_hours:, :]

因此,我的训练/测试集应该按照比赛次数进行:  (matches * len(match))

n_train_matches = some k number of matches * len(match)
train = values[:n_train_matches, :]
test = values[n_train_matches:, :]

我想将此转化为我的问题,以便尽早在时间t = 2上对每个功能进行预测。即比赛进行30秒。

问题

我是否需要在每场比赛中应用顺序填充?

是否有一种无需填充即可解决问题的方法?

1 个答案:

答案 0 :(得分:1)

如果您使用的是LSTM,那么我相信如果您进行填充和输入多个30秒的观测值,您更有可能从该模型中受益。

如果您不填充序列,并且想要在t = 2进行预测,那么您将只能使用最后一步的观测。