Python语言的时间序列数据异常检测库

本文梳理了一系列Python语言的时间序列数据异常检测库。

综合型机器学习库

Merlion

Salesforce开源的工业级库,支持异常检测与预测双任务,提供统一API和AutoML功能,包含统计模型、树模型和深度学习算法(如LSTM-AE、VAE) 

PyOD

专注多维离群值检测的参考库,涵盖经典算法(Isolation Forest、LOF)和深度模型(VAE、GAN),在时间序列场景需结合滑动窗口应用

Darts

以预测为核心的时间序列库,通过
NumbaDetector
等模块支持异常检测,提供40+模型(ARIMA到Transformer)

TimeSeAD
专注于多变量时间序列的深度学习异常检测,提供新指标和基准测试,适用于复杂时间依赖性的场景

专业型时间序列库

STUMPY

基于矩阵Profile(Matrix Profile)算法的可扩展库,专为大规模时间序列设计,支持分布式计算

Orion

专注无监督深度学习的异常检测框架,以TadGAN等生成模型为核心

River

流式机器学习库,支持在线更新模型,适合实时监控场景

轻量级与专用库

ADTK

提供规则基模型(如PersistAD、RangeAD)和可视化工具

tsod

纯Python实现,集成规则基和神经网络方法,API简洁

dtaianomaly

模块化库,支持算法组合和基准测试 

大规模数据处理能力

STUMPY:在商用笔记本上处理万亿级数据点(~10TB),通过矩阵Profile优化实现

PyOD + Dask:支持分布式计算,但需手动实现数据分片

Merlion:单机内存限制在百万级点,依赖后处理(如Calibrator)降低误报

算法类型

代表库

核心思想

适用场景

统计方法

Merlion

基于EWMA/季节分解的残差分析

稳定周期数据

树模型

PyOD

Isolation Forest通过随机分割路径隔离异常点

高维数据

深度学习

Orion, Darts

自编码器重构误差、GAN生成对比

复杂非线性模式

矩阵Profile

STUMPY

计算子序列相似度,低相似度区域判为异常

超大规模数据

流式算法

River

增量更新统计特征(如均值/方差)

实时数据流

文档与代码资源

Merlion

GitHub + 案例库

PyOD

官方文档 + 20+算法示例

Darts

时间序列教程 + 异常检测Notebook

STUMPY

大规模矩阵Profile指南

River

流处理手册

此外,通用库如 Scikit-learn 中的 IsolationForest、LocalOutlierFactor 等算法也可用于时间序列异常检测,而 Statsmodels 和 Ruptures 则支持突变点检测。选择时需根据数据特性(如单变量/多变量、是否需要实时检测)和算法需求(如统计方法或深度学习)进行权衡。

异常检测算法的选型需综合数据特征(维度/分布/类型)、异常模式(全局/局部)与计算资源。传统统计方法适用于低维正态数据,树模型(iForest/RCF)适合大规模场景,深度学习方法(AnomalyTransformer/GANomaly)在复杂模式(如图像、多变量时序)中表现突出,但需权衡训练成本。

© 版权声明

相关文章

暂无评论

none
暂无评论...