keras - 具有多变量时间序列的 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 秒进入比赛。
问题
我需要在每场比赛中应用预序列填充吗?
有没有办法在不填充的情况下解决问题?
解决方案
如果您使用的是 LSTM,那么我相信如果您正在填充和输入多个 30 秒的步骤观察,您更有可能从该模型中受益。
如果您没有填充序列,并且您想要在 t=2 时进行预测,那么您将只能使用最后一步的观察。
推荐阅读
- angular - 如何使子组件 div 在单击时显示图标,而不显示在其他同类 div 上?
- javascript - 使用 Moment 按天组合小时日期列表
- azure - 使用 OAuth2 通用提供程序成功登录后,Azure Bot 卡在登录卡上
- c++ - 更改 lua_thread 的 _ENV(使用 C API)
- python-3.x - 使用python从pcap文件中读取802.11数据包
- prolog - 序言中的哈希集和队列
- python - 为什么每次我尝试设置变量时 Pyzo 都会抛出错误?
- c++ - 不确定我的排序算法有什么问题
- javascript - 使用 CryptoJS 方法对对象进行数字签名?
- android - ReyclerView 项目列表中项目之间的巨大差距