使用 Python 进行时间序列异常检测的实用工具包

以下是如何检测每个序列中的点异常,并识别整个银行的异常信号使用 Python 进行时间序列异常检测的实用工具包一文首先出现在走向数据科学上。

来源:走向数据科学

时间序列的迷人之处在于这种看似简单的数据的内在复杂性。

在一天结束时,在时间序列中,您有一个通常表示时间 (t) 的 x 轴和一个表示感兴趣的数量(股票价格、温度、流量、点击次数等)的 y 轴。这比视频简单得多,例如,视频中您可能有数千张图像,并且每个图像都是宽度、高度和三个通道 (RGB) 的张量。

然而,感兴趣的数量(y 轴)随时间(x 轴)的演变是隐藏复杂性的地方。这种演变是否呈现出一种趋势?它是否有任何数据点明显偏离预期信号?是稳定的还是不可预测的?数量的平均值是否大于我们的预期?这些都可以以某种方式被定义为异常。

本文是多种异常检测技术的集合。目标是,给定多个时间序列的数据集,我们可以检测哪个时间序列异常以及原因。

这些是我们要检测的 4 个时间序列异常:

  • 我们将检测时间序列中的任何趋势(趋势异常)
  • 我们将评估时间序列的波动性(波动性异常)。
  • 我们将检测时间序列内的点异常(单点异常)。
  • 我们将检测信号库中的异常,以了解哪些信号的行为与我们的信号集不同(数据集级异常)。
  • 我们将从理论上描述此集合中的每种异常检测方法,并且我们将展示 Python 实现。我在本博客文章中使用的整个代码包含在PieroPaialungaAI/timeseriesanomalyGitHub 文件夹中

    0. 数据集

  • 从 config.json* 文件中读取数据集的配置。
  • 创建异常数据集
  • 使您能够轻松存储数据并绘制它们。
  • 这是代码片段:

    所以我们可以看到我们有:

  • 共享时间轴,从 0 到 100
  • 1.1 理论