首页 > 解决方案 > 具有多变量时间序列的 LSTM 的训练/测试集拆分

问题描述

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

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

                    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 秒进入比赛。

问题

我需要在每场比赛中应用预序列填充吗?

有没有办法在不填充的情况下解决问题?

标签: kerassequencepaddinglstmrecurrent-neural-network

解决方案


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

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


推荐阅读