用于配对时间序列中的异常检测的 ML 算法

数据挖掘 Python 时间序列 异常检测
2022-03-01 13:47:38

我有许多(大约 40 个)来自不同传感器的独立时间序列,每个传感器都测量磁场强度。我正在寻找一种 ML 算法来识别特定的异常。这种异常情况很少发生(在 25 年的 60 秒数据中会发生几次,具体取决于传感器),并且仅在您并排查看两个时间序列时才明显:

图_zzz

黄色圆圈是异常,大致可以这样描述:当时间序列受到特别干扰时,红色时间序列会在几个小时内与绿色时间序列短暂反相关(数据采样每 60 秒)。对于一对时间序列,这可以很容易地手动完成。

计划

我想通过手动识别传感器对的这些异常来训练机器学习算法,然后在其余的时间序列对上设置训练好的算法

问题

我不知道解决这个问题的最佳算法是什么,因为它涉及两个时间序列。我搞砸了在 6 小时内收集信息并将其视为非时间序列问题。这涉及分别处理每个 6 小时的块(即每个时间序列的标准、平均值、最大值、最小值以及相关系数和手动确定的 1 或 0 输出),但我觉得有一个神经网络将能够更好地找出重要变量。

问题

为了训练 ML 算法,解决这个问题的最佳方法是什么?我上面的方法合适吗?

2个回答

在考虑哪种算法之前,请先考虑哪些特征。您可以添加/忽略流利地暗示您的问题的功能。

这将围绕量化异常(新变量?)。尝试添加残差变量?或者只是红色和绿色变量之间的特征不同?

如果您的目标只是了解两个时间序列是否存在此类异常,那么这是一个分类问题。最好尝试手动标记系列对,然后我将使用 LSTM 算法解决两个系列的时间步长问题。由您自己进行实验以了解时间块将持续多长时间。