使用(?) LSTM 进行多变量时间序列分类
Posted
技术标签:
【中文标题】使用(?) LSTM 进行多变量时间序列分类【英文标题】:Multiple multivariate time series classification with(?) LSTM 【发布时间】:2021-05-03 17:23:11 【问题描述】:我对时间序列分类比较陌生,正在寻求帮助:
我有一个包含 5000 个多元时间序列的数据集,每个时间序列由 21 个变量组成,时间段为 3 年,类别信息为 1 或 0。我想做的是对包含 21 的新输入进行分类3 年内的变量。
就目前而言,经过几天的研究,我还没有找到(或显然不理解)将多个多元时间序列输入 LSTM 的方法。有没有可能的解决方案?
我目前的想法是将 5000 个时间序列“合并”为一个,并为每个时间序列添加另一个单独的变量,以明确区分每个部分......我完全不确定这是否有效或完全愚蠢......
我很高兴得到任何帮助或提示!!!如果我需要进一步澄清任何事情,请询问,我会立即这样做!
【问题讨论】:
您能否澄清这 5000 个时间序列中的每一个是否涵盖相同的时间段并具有相同的 21 个变量?它们之间有什么区别是它们不同的产品、位置、机器等。了解差异和问题背景将有助于回答。 【参考方案1】:我正在构建一个类似的模型,但用于图像。 在您的情况下,假设您的数据结构如下:
0000: x1, x2, x3....x21
0001: x1, x2, x3....x21
0002: x1, x2, x3....x21
.
.
.
5000: x1, x2, x3....x21
如果您想仅使用一个观察值(即时间步长为 1)来预测结果,请构建数据集,使时间序列的下一步是当前步长的输出。这里箭头标记后的变量是你的目标变量。
0000: x1, x2, x3 ....x21 ->> 0001: x1, x2, x3 .... x21
0001: x1, x2, x3 ....x21 ->> 0002: x1, x2, x3 .... x21
0002: x1, x2, x3 ....x21 ->> 0003: x1, x2, x3 .... x21
.
.
.
4999: x1, x2, x3 ....x21 ->> 5000: x1, x2, x3 .... x21
如果您想有多个时间步长作为输入,例如 3,那么第 4 个时间步长将是您的第一个时间步长的目标变量,依此类推:
[0000: x1, x2, x3....x21
0001: x1, x2, x3....x21
0002: x1, x2, x3....x21] ->> [0003: x1,x2,x3 .... x21]
[0001: x1, x2, x3....x21
0002: x1, x2, x3....x21
0003: x1, x2, x3....x21] ->> [0004: x1,x2,x3 .... x21]
.
.
.
[4997: x1, x2, x3....x21
4998: x1, x2, x3....x21
4999: x1, x2, x3....x21] ->> [5000: x1,x2,x3 .... x21]
所以重要的部分是正确定义数据集,LSTM 可以很好地处理这些数据。
【讨论】:
以上是关于使用(?) LSTM 进行多变量时间序列分类的主要内容,如果未能解决你的问题,请参考以下文章
如何在 keras 中使用 Conv1D 和双向 LSTM 对每个时间步进行多类分类?