时序数据异常检测

时序数据异常检测

更新:

arXiv 2019.01上放出来的这篇文章,讲的非常详细。

针对时序数据异常检测的相关软件和工具包都在这个github上:


含义

时序数据异常点是指序列中模式存在不一致的点(如突然的上升或下降,趋势改变,层级变换,超出历史最大值/最小值)。时序数据的异常检测旨在快速准确的找到这些异常点。

相关工作

主要可以分为有监督无监督的异常检测方法。

  • 有监督的方法将异常检测转化为二分类问题,正常数据为一个类,异常数据为一个类。这样可以直接利用现成的分类方法。但是需要人工标记异常数据,在许多实际应用中往往不太现实。
  • 无监督的方法相对比较实用,主要分为三类:
    • 基于规则的方法,如3 \sigma 准则。
    • 基于聚类的方法,将数据聚为多个类,如果某个数据和类中心都比较远,则该数据为异常,或是将数据量少于某个阈值的类中所有数据认为是异常。
    • 基于重建的方法,这类的方法主要基于auto-encoder (AE)或variational auto-encoder (VAE)。先训练一个模型,得到数据的隐空间。对于测试数据,若该数据的重建误差较大,说明该数据不能和其他数据的分布吻合,即为异常数据。[1]

存在的挑战[2]

1. 数据量大
2. 类别(异常/非异常)不平衡
3. 不完整的异常和非异常的标注
4. 特征工程复杂

开源工具

  1. 微软:github.com/Microsoft/Ta
  • 支持时序数据可视化
  • 用户可在数据上打标签,标记异常
  • 不同类别的时序数据做比较
  • 自带异常检查工具包,能自动的发现异常
  • 可观测类别之间分布的变化,发现异常是否存在于多个变量

2. 百度&清华:github.com/baidu/Curve

    • 支持数据可视化
    • 用户可在数据上打标签,标记异常


[1] Multidimensional Time Series Anomaly Detection: AGRU-based Gaussian Mixture Variational AutoencoderApproach. ACML 2018.
[2] Feedforward Neural Network for Time Series Anomaly Detection. arXiv 2018.

编辑于 2019-02-18 19:38