如何针对多时间序列数据训练LSTM-适用于单变量和多变量场景?

时间:2019-05-11 09:18:03

标签: tensorflow time-series lstm

我有数百个设备的数据(对不起,我没有详细说明设备和为设备记录的数据)。对于每个设备,每小时记录一次数据。

记录的数据为25维。

我的预测任务很少

  

时间序列预测

我正在使用LSTM。由于我有数百个设备,每个设备都是一个时间序列(多变量数据),因此我的所有数据总计都是一个包含多变量数据的多时间序列。

要处理多个时间序列-我的第一种方法是依次连接数据并将它们视为一个时间序列(可以是单变量或多变量),并应用LSTM并训练我的LSTM模型。

但是通过上述方法(通过串联时间序列数据),实际上我在丢失数据的时间属性,因此我需要一种更好的方法。

请提出一些想法或博客文章。

请不要将“多个时间序列”与“多变量时间序列”数据混淆。

1 个答案:

答案 0 :(得分:1)

您可以考虑采用万能模型或Seq2Seq,例如这份Google论文提出了建议。该方法的工作方式如下:

  • 让我们假设您要提前1天预测(24个值),而您使用的是最近7天(7 * 24 = 168个值)作为输入。
  • 在时间序列中,分析数据是时间相关的,因此您需要一种考虑这种时间相关性的验证策略,例如通过rolling forecast方法。单独的保留数据用于测试最终的训练模型。

  • 第一步,您将从多个时间序列168 + 24切片中生成图像(有关图像,请参阅Google论文)。 x输入的长度为168,y输入的长度为24。使用所有生成的切片来训练LSTM / GRU网络,最后对保留集进行预测。

关于这个问题的好论文:

Kaggle获奖解决方案

列表并不全面,但是您可以将其用作起点。