具有包含非数字特征和数字特征的多个特征的 RNN 时间序列预测?

数据挖掘 深度学习 时间序列 rnn
2021-10-09 01:23:39

具有多个特征的 RNN 的问题是模棱两可的,并且在区分不同的特征时没有明确。我想了解如何使用 RNN 来预测具有多个包含非数字数据的特征的时间序列。作为一个深度学习模型,我假设我不需要量化非数字元素。

假设销售数据

Sales | Weather | Holiday | Temperature
100   | Windy   | Yes     | 3
2000  | Sunny   | Yes     | 20
200   | Sunny   | No      | 30
-5    | Stormy  | No      | 3
-50   | Cold    | No      | -50
500   | Cold    | Yes     | -20

我想Sales用其他列预测该列。我在这里找到了关于使用 RNN 处理数字数据的演示,而不用非数字数据丰富数据。

所以

如何预测具有多个特征的时间序列包含数字特征和非数字特征?


其他与 RNN 相关的有趣问题

  1. 带有数字数据的 SO 中的多元时间序列 RNN 问题

  2. 使用 ARIMA 与 LSTM 进行时间序列预测

2个回答

将这些分类变量作为时间步长的一部分提供给 RNN 的可能方法包括从分类字段生成One_Hot 张量哈希表表示嵌入层输出,并在每个时间步连接所有特征张量以喂给你的RNN。

如果您希望将组成字段的字符串解释为序列本身,而不是离散类别,您可以在单词或字符级别对它们进行数字编码,并将它们传递给辅助 RNN 以在每个时间步长。这仅适用于这些字段中的字符串种类繁多的情况。

如果您不使用该框架,请为 Tensorflow 链接道歉。

您可能会对此线程感兴趣:向时间序列模型 LSTM 添加功能

你基本上有3种可能的方式:

例如,来自两个不同城市的天气数据:巴黎和旧金山。您想根据历史数据预测下一个温度。但与此同时,您预计天气会根据城市而​​变化。您可以:

  • 在开始或结束时将辅助特征与时间序列数据相结合(丑陋!)。
  • 将辅助特征与 RNN 层的输出连接起来。这是某种后期 RNN 调整,因为 RNN 层不会看到这些辅助信息。
  • 或者用学习到的条件表示来初始化 RNN 状态(例如,巴黎或旧金山)。

我写了一个库来调节辅助输入。它抽象了所有复杂性,并被设计为尽可能用户友好:

https://github.com/philipperemy/cond_rnn/

实现在张量流中(> = 1.13.1)

希望能帮助到你!