麻省理工学院数据与人工智能实验室的开源项目。
Orion
一个用于无监督时间序列异常检测的机器学习库。
重要链接 | |
---|---|
:computer: 网站 | 查看Sintel网站以获取有关该项目的更多信息。 |
:book: 文档 | 快速入门、用户和开发指南以及API参考。 |
:star: 教程 | 查看我们的notebooks |
:octocat: 代码库 | 该库的Github仓库链接。 |
:scroll: 许可证 | 该仓库以MIT许可证发布。 |
社区 | 加入我们的Slack工作空间,获取公告和参与讨论。 |
概述
Orion是一个为无监督时间序列异常检测而构建的机器学习库。对于给定的时间序列数据,我们提供了多个"经过验证的"ML管道(即Orion管道),用于识别罕见模式并将其标记以供专家审查。
该库使用了麻省理工学院数据与人工智能实验室开发的多种自动机器学习工具。
阅读一个博客系列,了解如何在纽约出租车数据集上使用Orion管道:
Notebooks: 通过启动我们的notebooks在colab中探索Orion!
快速入门
使用pip安装
安装Orion最简单和推荐的方法是使用pip:
pip install orion-ml
这将从PyPi获取并安装最新的稳定版本。
在以下示例中,我们将展示如何使用Orion管道之一。
拟合Orion管道
我们将为此示例加载演示数据:
from orion.data import load_signal
train_data = load_signal('S-1-train')
train_data.head()
这应该显示一个包含timestamp
和value
的信号。
timestamp value
0 1222819200 -0.366359
1 1222840800 -0.394108
2 1222862400 0.403625
3 1222884000 -0.362759
4 1222905600 -0.370746
在这个例子中,我们使用aer
管道并设置一些超参数(在这种情况下,训练epochs为5)。
from orion import Orion
hyperparameters = {
'orion.primitives.aer.AER#1': {
'epochs': 5,
'verbose': True
}
}
orion = Orion(
pipeline='aer',
hyperparameters=hyperparameters
)
orion.fit(train_data)
使用拟合的管道检测异常
一旦拟合完成,我们就可以使用它来检测传入时间序列中的异常:
new_data = load_signal('S-1-new')
anomalies = orion.detect(new_data)
:warning: 根据你的系统和可能安装的确切版本,可能会打印一些警告。这些可以安全地忽略,因为它们不会干扰管道的正常行为。
上述命令的输出将是一个包含检测到的异常表格的pandas.DataFrame
:
start end severity
0 1402012800 1403870400 0.122539
排行榜
在每个版本中,我们都会运行Orion基准测试。我们维护一个最新的排行榜,根据基准测试程序显示经过验证的管道的当前评分。
我们在12个已知真实情况的数据集上运行基准测试。我们记录每个管道在每个数据集上的得分。为了计算排行榜表格,我们展示了每个管道相对于ARIMA管道的胜利次数。
您可以在详细Google表格文档中找到每个管道在每个信号上的得分记录。总结结果也可以在以下摘要Google表格文档中浏览。
资源
可能感兴趣的其他资源:
引用
如果您在研究中使用AER,请考虑引用以下论文:
Lawrence Wong, Dongyu Liu, Laure Berti-Equille, Sarah Alnegheimish, Kalyan Veeramachaneni. AER: 用于时间序列异常检测的回归自编码器。
@inproceedings{wong2022aer,
title={AER: 用于时间序列异常检测的回归自编码器},
author={Wong, Lawrence and Liu, Dongyu and Berti-Equille, Laure and Alnegheimish, Sarah and Veeramachaneni, Kalyan},
booktitle={2022 IEEE国际大数据会议(IEEE BigData)},
pages={1152-1161},
doi={10.1109/BigData55660.2022.10020857},
organization={IEEE},
year={2022}
}
如果您在研究中使用TadGAN,请考虑引用以下论文:
Alexander Geiger, Dongyu Liu, Sarah Alnegheimish, Alfredo Cuesta-Infante, Kalyan Veeramachaneni. TadGAN - 使用生成对抗网络的时间序列异常检测。
@inproceedings{geiger2020tadgan,
title={TadGAN: 使用生成对抗网络的时间序列异常检测},
author={Geiger, Alexander and Liu, Dongyu and Alnegheimish, Sarah and Cuesta-Infante, Alfredo and Veeramachaneni, Kalyan},
booktitle={2020 IEEE国际大数据会议(IEEE BigData)},
pages={33-43},
doi={10.1109/BigData50022.2020.9378139},
organization={IEEE},
year={2020}
}
如果您在研究中使用作为Sintel生态系统一部分的Orion,请考虑引用以下论文:
Sarah Alnegheimish, Dongyu Liu, Carles Sala, Laure Berti-Equille, Kalyan Veeramachaneni. Sintel:从信号中提取洞察的机器学习框架。
@inproceedings{alnegheimish2022sintel,
title={Sintel:从信号中提取洞察的机器学习框架},
author={Alnegheimish, Sarah and Liu, Dongyu and Sala, Carles and Berti-Equille, Laure and Veeramachaneni, Kalyan},
booktitle={2022年数据管理国际会议论文集},
pages={1855–1865},
numpages={11},
publisher={计算机协会},
doi={10.1145/3514221.3517910},
series={SIGMOD '22},
year={2022}
}