首页 > 解决方案 > 如何处理 LSTM 神经网络 Pytorch 的“具有多个观察/个体的多变量时间序列”数据集?

问题描述

在具有多个观察/个人的多变量时间序列序列到序列(例如,5 到 1)预测的背景下,我试图了解如何处理我拥有的数据集。

数据集的结构如下:20'000个观察次数(例如人)、30 个特征/变量、70 个时间戳(与每个特征/变量和人相关联)。在 PyTorch 中,数据集形状为 (20000, 70, 30)(使用 dataset_loaded.shape)。这意味着我们有 20,000 人,对于每个人,每个特征总共需要 70 个值(因为有 70 个时间戳)。

我的目标是对人进行二元分类;每个人都与 30 个不同的时间序列(70 个时间戳)相关联,提供有关如何对人进行分类的信息。

我当前的问题是构建一个正确的训练数据加载器,以便使用简单的 LSTM 神经网络执行小批量训练。

到目前为止,我发现的所有示例都没有多个个体(例如,人、股票、设备等)。这意味着在每个时间戳(例如,它们有 70 行)和每个特征(例如,它们有 30 列)只有“观察”(例如,仅针对一个特定的人或一个特定的股票或一个特定的设备) )。因此,处理此类数据、使用移动窗口并创建正确的训练数据加载器变得很简单,因为我们有一个大小为 (70, 30) 的张量。

我应该如何处理“多人”方面?这是否意味着我应该创建 20'000 个训练数据加载器并训练 20'000 个 LSTM 模型?好像不太合理...

我问的有道理吗?是否有一种明显的方法可以更好地(或至少正确地处理数据?)?对于这样的任务,只使用一个训练数据加载器和一个 LSTM 模型是一个合理的想法吗?

我可能错过了一些重要的事情,因为我似乎无法找到我的问题的答案,即使这样的任务(即,让多个人在多个时间戳上测量多个特征)应该很常见......

标签: neural-networkpytorchtime-serieslstmforecasting

解决方案


推荐阅读