多变量和多序列 LSTM

数据挖掘 神经网络 深度学习 喀拉斯 lstm rnn
2022-02-26 22:14:14

我正在尝试创建污染预测 LSTM。在网上看到了一个例子,可以满足多元 LSTM 来预测一个城市(北京)的污染水平,但是不止一个城市呢?我真的不想要每个城市都有一个单独的网络,我想要一个适用于所有 x 个城市的单一通用模型/网络。但是如何将这些数据输入 LSTM?

假设我对每个城市都有相同的数据,我...

1) 对一个城市的所有数据进行训练,然后是下一个城市,以此类推,直到所有城市都完成。

2) 在日期 t 训练所有城市的数据,然后在 t+1 和 t+2 训练所有城市的数据,以此类推。

3) 完全不同的东西。

有什么想法吗?

2个回答

我会说选项 1 效果不太好:根据我的经验,该模型要么只适用于你训练的第一个或最后一个模型,这取决于你给算法多少自由来改变权重随着时间的推移(例如学习率)。

你真的需要决定你要预测什么。是单个城市的污染水平吗:每个城市都有哪些特点?

如果您拥有的特征也是真正可以解释目标变量的通用特征,那么同时训练所有城市可能是有意义的。因此,如果您有温度、湿度、该城市的一些交通统计数据等,那么一起训练所有内容可能是有意义的。

我会考虑导致一个目标污染水平的每个样本,如果该样本有足够的信息(基于特征)以将自己与其他城市的样本区分开来,那么该模型应该拾取并利用数据中的这些细微之处。

我可以想到两种选择:

  • 多输入/多输出模型:如果城市彼此靠近,其中一个城市的污染可能会影响另一个城市的污染。在这种情况下,通过将每个城市的测量值作为LSTM-RNN的单独 输入来检查相互污染是有意义的。您可以使用这些时间序列训练您的网络,并且在测试期间您将插入每个城市的污染,time t并且网络可以预测所有城市的污染t+n(n 是任意地平线;时间越长,准确度越低预言)。
  • 单输入/单输出模型:另一种方法是使用每个城市的所有训练数据来创建单输入网络,假设所有数据来自同一来源(或至少相似来源)。给定任何城市的污染情况,该网络经过训练可以输出t+n污染预测。t但这意味着您的网络可以很好地泛化。为了用你的 LSTM-RNN 进行泛化,你应该考虑在训练期间添加Dropout 。看到这个这个