用于_时间序列_数据异常检测的工具和数据集列表。
所有列表均按字母顺序排列。在列表中,已维护的项目优先于未维护的项目。 如果最新提交超过 1 年,或作者明确说明,则该仓库被视为“未维护”。
🎓 如果您觉得这个合集有用并想引用它,请遵循引用政策。
| 名称 | 语言 | 简介 | 许可证 | 维护状态 |
|---|---|---|---|---|
| Cuebook 的 CueObserve | Python3 | 对 SQL 数据仓库和数据库进行异常检测。 | Apache-2.0 | ✔️ |
| Yahoo 的 EGADS | Java | GADS 是一个库,将多种适用于众多用例的异常检测技术集成在单个包中,唯一依赖是 Java。 | GPL | ✔️ |
| AIStream 的 flow-forecast | Python | 用于时间序列预测、分类和异常检测的深度学习 PyTorch 库(最初用于洪水预测)。 | GPL-3 | ✔️ |
| Hastic | Python + node.js | 带有基于 Grafana 的用户界面的时间序列数据异常检测工具。 | GPL | ✔️ |
| Zillow 的 Luminaire | Python | Luminaire 是一个 Python 包,为时间序列数据提供由机器学习驱动的异常检测和预测解决方案。 | Apache-2.0 | ✔️ |
| MIDAS | C++ | MIDAS 是 Microcluster-Based Detector of Anomalies in Edge Streams 的缩写,以恒定的时间和内存从边流中检测微簇异常。 | Apache-2.0 | ✔️ |
| Orion | Python | Orion 是一个为无监督时间序列异常检测构建的机器学习库,提供许多“经验证”的机器学习流水线(即 Orion 流水线),用于识别罕见模式并标记以供专家审查。 | MIT | ✔️ |
| OutlierDetection.jl | Julia | 使用 Julia 进行快速、可扩展且灵活的离群值检测。 | MIT | ✔️ |
| PyOD | Python | PyOD 是一个全面且可扩展的 Python 工具包,用于检测多变量数据中的离群对象。 |
本节包含一些用于异常检测相关任务的时间序列软件,例如预测、通用时间序列分析和标注。
NAB 是一个用于评估流式实时应用中异常检测算法的新型基准。它包含 50 多个带标签的真实世界和人工时间序列数据文件,以及专为实时应用设计的新型评分机制。
该数据集由带有标记异常点的真实和合成时间序列组成。该数据集测试了包括离群值和变点在内的各种异常类型的检测准确性。
SKAB(Skoltech 异常基准)专为评估异常检测算法而设计。该基准目前包含 30 多个数据集,以及用于算法评估的 Python 模块。每个数据集代表从安装在测试平台上的传感器收集的多变量时间序列。所有实例都带有标签,用于评估解决离群值检测和变点检测问题的结果。
该数据集包含来自互联网公司许多真实场景的 KPI(关键性能指标)时间序列数据,并带有真实标签。点击下方查看更详细的描述。
该数据集包含来自互联网公司许多真实场景的 KPI(关键性能指标)时间序列数据,并带有真实标签。KPI 分为两大类:服务 KPI 和机器 KPI。服务 KPI 是反映 Web 服务规模和质量的性能指标,例如页面响应时间、页面浏览量和连接错误数。机器 KPI 是反映机器(服务器、路由器、交换机)健康状况的性能指标,例如 CPU 利用率、内存利用率、磁盘 IO、网卡吞吐量等。
数据集描述:
为了训练异常检测算法,我们提供的训练 KPI 数据如表 1 所示,包括四列:KPI ID、时间戳、该时刻的 KPI 值,以及该时刻是否异常(标签)。
表 1 训练 KPI 数据示例
如果您想引用此仓库,请使用以下 DOI:
或使用此 BibTex
@article{medico2020,
title={rob-med/awesome-TS-anomaly-detection},
DOI={10.5281/zenodo.3972944},
abstractNote={A collection of tools and datasets for anomaly detection on time-series data.},
publisher={Zenodo}, author={Roberto Medico}, year={2020}, month={Aug}}
| BSD 2-Clause |
| ✔️ |
| ruptures | Python | Ruptures 是一个用于离线变点检测的 Python 库。该包提供了用于分析和分割非平稳信号的方法。 | BSD 2-Clause | ✔️ |
| EarthGecko 的 Skyline | Python3 | Skyline 是一个实时异常检测系统,旨在实现对数十万个指标的被动监控。 | MIT | ✔️ |
| Expedia.com 的 Adaptive Alerting | Java | 具有自动模型选择和拟合的流式异常检测。 | Apache-2.0 | ❌ |
| Arundo 的 ADTK | Python | 异常检测工具包(ADTK)是一个用于无监督/基于规则的时间序列异常检测的 Python 包。 | MPL 2.0 | ❌ |
| Twitter 的 AnomalyDetection | R | AnomalyDetection 是一个开源 R 包,用于检测异常。从统计角度看,它在存在季节性和潜在趋势时具有鲁棒性。 | GPL | ❌ |
| Lytics 的 Anomalyzer | Go | Anomalyzer 实现了一套统计检验,用于计算给定数字输入集(通常是时间序列)包含异常行为的概率。 | Apache-2.0 | ❌ |
| banpei | Python | 用于时间序列的离群值检测(Hotelling 理论)和变点检测(奇异谱变换)。 | MIT | ❌ |
| Ele.me 的 banshee | Go | 用于周期性指标的异常检测系统。 | MIT | ❌ |
| CAD | Python | 用于流式数据实时异常检测的上下文异常检测(2016 年 NAB 竞赛的获胜算法)。 | AGPL | ❌ |
| Chaos Genius | Python | 由机器学习驱动的分析引擎,用于离群值/异常检测和根因分析。 | MIT | ❌ |
| Mentat 的 datastream.io | Python | 一个使用 Python、Elasticsearch 和 Kibana 进行实时异常检测的开源框架。 | Apache-2.0 | ❌ |
| DeepADoTS | Python | 对 7 种基于深度学习的时间序列数据异常检测技术的实现和评估。 | MIT | ❌ |
| Donut | Python | Donut 是一种基于变分自编码器的无监督异常检测算法,适用于季节性 KPI。 | - | ❌ |
| LoudML | Python | Loud ML 是一个基于 TensorFlow 构建的开源时间序列推理引擎。它可用于预测数据、检测离群值,并利用未来知识自动化您的流程。 | MIT | ❌ |
| Linkedin 的 luminol | Python | Luminol 是一个用于时间序列数据分析的轻量级 Python 库。它支持的两大功能是异常检测和相关性分析。它可用于调查异常的可能原因。 | Apache-2.0 | ❌ |
| Numenta 的 Nupic | C++ | Numenta 智能计算平台是层级时序记忆(HTM)的一种实现。 | AGPL | ❌ |
| oddstream | R | oddstream(数据流中的离群值检测)为在大型流式时间序列数据集中及早检测异常序列提供实时支持。 | GPL-3 | ❌ |
| PyOdds | Python | PyODDS 是一个具有数据库支持的端到端 Python 离群值检测系统。PyODDS 提供支持静态和时间序列数据的离群值检测算法。 | MIT | ❌ |
| PySAD | Python | PySAD 是一个流式异常检测框架,包含各种在线模型和完整的实验工具集。 | BSD 3-Clause | ❌ |
| rrcf | Python | 鲁棒随机切割森林算法在流式数据上的异常检测实现。 | MIT | ❌ |
| Netflix 的 Surus | Java | 鲁棒异常检测(RAD)——鲁棒 PCA 的一种实现。 | Apache-2.0 | ❌ |
| NASA 的 Telemanom | Python | 一个使用 LSTM 检测多变量时间序列数据中异常的框架。包含来自火星科学实验室和 SMAP 任务的航天器异常数据和实验。 | 自定义 | ❌ |
| 名称 | 语言 | 简介 | 许可证 | 维护状态 |
|---|
| darts | Python | darts 是一个用于轻松处理和预测时间序列的 Python 库。它包含多种模型,从 ARIMA 等经典模型到神经网络。 | Apache-2.0 | ✔️ |
| ETNA | Python | etna 是一个始终考虑时间数据结构的 Python 时间序列预测和分析库。包含具有统一接口的各种预测模型,以及 EDA 和验证方法。 | Apache-2.0 | ✔️ |
| Amazon 的 GluonTS | Python | GluonTS 是一个围绕 MXNet 构建的概率时间序列建模 Python 工具包。GluonTS 提供了用于加载和迭代时间序列数据集的工具、开箱即用的先进模型,以及用于定义您自己模型的构建块。 | Apache-2.0 | ✔️ |
| pmdarima | Python | R 语言 auto.arima 的移植版本,接口对 scikit-learn 友好。 | MIT | ✔️ |
| Facebook 的 Prophet | Python/R | Prophet 是一种用于预测时间序列数据的过程。它基于加法模型,其中非线性趋势与年度和每周季节性以及节假日进行拟合。 | BSD | ✔️ |
| PyFlux | Python | 该库拥有丰富的现代时间序列模型,以及可应用于这些模型的灵活推理选项(频率派和贝叶斯派)。 | BSD 3-Clause | ❌ |
| 名称 | 语言 | 简介 | 许可证 | 维护状态 |
|---|
| Facebook 的 Kats | Python | Kats 旨在提供一站式时间序列分析服务,包括检测、预测、特征提取/嵌入、多变量分析等。 | MIT | ✔️ |
| MatrixProfile | Python | 一个 Python 3 库,利用矩阵轮廓算法,让每个人都能轻松完成时间序列数据挖掘任务。 | Apache-2.0 | ✔️ |
| Salesforce 的 Merlion | Python | Merlion:用于时间序列智能的机器学习框架,支持包括 ARIMA 在内的多种模型。 | BSD 3-Clause | ✔️ |
| SaxPy | Python | SAX 的通用实现,以及用于异常检测的 HOTSAX。 | GPLv2.0 | ✔️ |
| sktime | Python | 一个用于时间序列机器学习的统一框架。它提供专门的时间序列算法和与 scikit-learn 兼容的工具,用于为多种学习问题构建、调整和验证时间序列模型。 | BSD 3-Clause | ✔️ |
| sktime-dl | Python | 一个用于 sktime 的 Tensorflow/Keras 深度学习扩展包。 | BSD 3-Clause | ✔️ |
| Squey | C++ | 可视化软件,允许深入探索时间序列,同时显示每一个离群值。 | MIT | ✔️ |
| Tigramite | Python | Tigramite 是一个因果时间序列分析 Python 包。它可以从高维时间序列数据集中高效地重建因果图,并对获得的因果依赖关系进行建模,以用于因果中介和预测分析。 | GPLv3.0 | ✔️ |
| tsflex | Python | tsflex 是一个灵活且高效的时间序列特征提取与处理工具包。该包支持在多变量、不规则采样的序列数据上进行滑动窗口特征提取。 | MIT | ✔️ |
| tslearn | Python | tslearn 是一个提供时间序列分析机器学习工具的 Python 包。该包基于 scikit-learn、numpy 和 scipy 库构建。 | BSD 2-Clause | ✔️ |
| seglearn | Python | Seglearn 是一个用于时间序列或序列机器学习的 Python 包。它提供了集成的流水线,包括分割、特征提取、特征处理和最终估计器。 | BSD 3-Clause | ❌ |
| 名称 | 语言 | 简介 | 许可证 | 维护状态 |
|---|
| Baidu 的 Curve | Python | Curve 是一个帮助在时间序列数据上标注异常的开源工具。 | Apache-2.0 | ❌ |
| Microsoft 的 Taganomaly | R(docker 化的 Web 应用) | 用于标注时间序列数据的简单工具。适用于单变量和多变量数据,并利用 Twitter 的 AnomalyDetection 包提供参考异常预测。 | MIT | ❌ |
| KPI ID | Timestamp | Value | Label |
|---|
| 0 | 1503831000 | 10.8 | 0 |
| 0 | 1503831060 | 12.3 | 1 |
| ... | ... | ... | ... |
为了评估异常检测算法,我们提供的测试 KPI 数据如表 2 所示,包括两列:KPI ID、时间戳,以及该时刻 KPI 对应的值。
表 2 测试 KPI 数据示例
| KPI ID | Timestamp | Value |
|---|---|---|
| 0 | 1503831000 | 10.8 |
| 0 | 1503831060 | 12.3 |
| ... | ... | ... |