pyoats

pyoats

灵活强大的时间序列异常检测Python库

pyoats是一个专注于时间序列异常检测的开源Python库。它整合了多种先进检测算法,支持单变量和多变量时间序列分析,并提供统一的输出接口。该项目不仅集成了PyTorch、TensorFlow等深度学习框架,还包含传统统计方法。pyoats旨在简化异常检测实验流程,为数据科学家和工程师提供了一个功能丰富、使用灵活的工具。

时间序列异常检测OATS机器学习开源项目Github
<!-- 改进的回到顶部链接兼容性:参见 https://github.com/othneildrew/Best-README-Template/pull/73 -->

<a name="readme-top"></a>

<!-- *** 感谢查看 Best-README-Template。如果你有任何建议 *** 可以改进这个模板,请 fork 仓库并创建一个 pull request, *** 或者简单地开一个带有"enhancement"标签的 issue。 *** 别忘了给项目点个星! *** 再次感谢!现在去创造一些令人惊叹的东西吧!:D --> <!-- 项目徽章 --> <!-- *** 我使用 markdown 的"引用风格"链接以提高可读性。 *** 引用链接用方括号 [ ] 括起来,而不是圆括号 ( )。 *** 在本文档底部查看引用变量的声明 *** 包括贡献者 URL、分支 URL 等。这是一种可选的简洁语法。 *** https://www.markdownguide.org/basic-syntax/#reference-style-links -->

[![贡献者][contributors-shield]][contributors-url] [![星标数][stars-shield]][stars-url] [![问题][issues-shield]][issues-url] [![Apache 2.0 许可证][license-shield]][license-url] [![最后提交][last_commit-shield]][last_commit-url]

<!-- 项目 LOGO --> <br /> <div align="center"> <a href="https://github.com/georgian-io/oats"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/616b8f09-54fc-4bf0-9da1-270f0ede1b8e.png" alt="Logo" width="auto" height="80"> </a> <h3 align="center"> OATS</h3> <p align="center"> 快速简便的时间序列异常检测 <br /> <a href="https://georgian-io-archive.github.io/pyoats-docs/"><strong>浏览文档 »</strong></a> <br /> <br /> <a href="https://georgian-io.medium.com/time-series-anomaly-detection-a-field-study-d13b35ee4344">查看演示</a> · <a href="https://github.com/georgian-io/pyoats/issues">报告 Bug</a> · <a href="https://github.com/georgian-io/pyoats/issues">请求新功能</a> </p> </div> <!-- 目录 --> <details> <summary>目录</summary> <ol> <li> <a href="#about-the-project">关于项目</a> <ul> <li><a href="#built-with">构建工具</a></li> </ul> </li> <li> <a href="#getting-started">入门</a> <ul> <li><a href="#prerequisites">前提条件</a></li> <li><a href="#installation">安装</a></li> </ul> </li> <li><a href="#usage">使用方法</a></li> <li><a href="#models">模型</a></li> <li><a href="#roadmap">路线图</a></li> <li><a href="#contributing">贡献</a></li> <li><a href="#license">许可证</a></li> <li><a href="#contact">联系方式</a></li> <li><a href="#acknowledgments">致谢</a></li> </ol> </details> <!-- 关于项目 -->

关于项目

将现有的异常检测和预测方法改编成时间序列异常检测系统并不是一件简单的事。好消息是:OATS 已经为你完成了繁重的工作!

我们为流行的、最先进的检测方法提供了一个直观的接口,以协助你进行实验。除了模型之外,我们还提供了在选择最终预测阈值时的不同选项。

OATS 无缝支持单变量和多变量时间序列,不受模型选择的限制,并保证相同的输出形状,从而实现时间序列异常检测的模块化方法。

<p align="right">(<a href="#readme-top">返回顶部</a>)</p>

构建工具

[![Python][Python.org]][Python-url] [![Poetry][Python-Poetry.org]][Poetry-url]

[![Pytorch][Pytorch.org]][Torch-url] [![PytorchLightning][PytorchLightning.ai]][Lightning-url] [![TensorFlow][TensorFlow.org]][TF-url] [![Numpy][Numpy.org]][Numpy-url]

[![Darts][Darts]][Darts-url] [![PyOD][PyOD]][PyOD-url]

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 入门 -->

入门

<br /> <div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/88691cc4-2875-4169-b651-b7800ecfe6af.png" alt="使用示例" width="600" height="auto"> </a> </div>

前提条件

[![Python][Python.org]][Python-url] >=3.8, <3.11

Docker 安装:

[![Docker][Docker.com]][Docker-url]

本地安装:

[![Poetry][Python-Poetry.org]][Poetry-url]

安装

PyPI

  1. 通过 pip 安装包
    pip install pyoats
    ❗ 强烈建议使用环境管理器如 condavenvpoetry 进行安装,因为该包包含深度学习框架。

Docker

  1. 克隆仓库
    git clone https://github.com/georgian-io/pyoats.git && cd pyoats
  2. 构建镜像
    docker build -t pyoats .
  3. 运行容器
    # 仅 CPU docker run -it pyoats # 使用 GPU docker run -it --gpus all pyoats

本地

  1. 克隆仓库
    git clone https://github.com/georgian-io/pyoats.git && cd pyoats
  2. 通过 Poetry 安装
    poetry install
<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 使用示例 -->

使用方法

快速开始

快速入门,请参考<a href="https://medium.com/@georgian-io/time-series-anomaly-detection-a-field-study-d13b35ee4344">我们的博客</a>或复制我们的 <a href="https://tinyurl.com/pyoats-notebook">Colab 笔记本</a>

获取异常分数

from oats.models import NHiTSModel model = NHiTSModel(window=20, use_gpu=True) model.fit(train) scores = model.get_scores(test)

获取阈值

from oats.threshold import QuantileThreshold t = QuantileThreshold() threshold = t.get_threshold(scores, 0.99) anom = scores > threshold

更多示例,请参考文档

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 模型 -->

模型

有关各个模型的更多详细信息,请参阅文档<a href="https://medium.com/georgian-impact-blog/time-series-anomaly-detection-the-detectives-toolbox-9ef131dddaf9">这篇博客</a>以获得更深入的解释。

模型类型多变量支持*需要拟合深度学习框架依赖论文参考模型
ARIMA预测型⚠️statsmodels.ARIMA
FluxEV预测型⚠️📝
LightGBM预测型⚠️darts.LightGBM
移动平均预测型⚠️
N-BEATS预测型[![Pytorch][Pytorch.org]][Torch-url]📝darts.NBEATS
N-HiTS预测型[![Pytorch][Pytorch.org]][Torch-url]📝darts.NHiTS
随机森林预测型⚠️darts.RandomForest
回归预测型⚠️darts.Regression
RNN预测型[![Pytorch][Pytorch.org]][Torch-url]darts.RNN
时间卷积网络预测型[![Pytorch][Pytorch.org]][Torch-url]📝darts.TCN
时间融合变压器预测型[![Pytorch][Pytorch.org]][Torch-url]📝darts.TFT
Transformer预测型[![Pytorch][Pytorch.org]][Torch-url]📝darts.Transformer
隔离森林基于距离pyod.IForest
矩阵剖析基于距离📝stumpy
TranAD基于重构[![TensorFlow][TensorFlow.org]][Torch-url]📝tranad
变分自编码器基于重构[![TensorFlow][TensorFlow.org]][Torch-url]📝pyod.VAE
分位数基于规则⚠️

* 对于带有⚠️的模型,分数计算是沿每列单独进行的。这隐含地假设协变量之间是独立的,这意味着结果异常分数不考虑变量间的依赖结构。

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 路线图 -->

路线图

  • 自动超参数调优
  • 更多示例
  • 更多预处理器
  • 更多来自pyod的模型

查看未解决的问题以获取提议功能的完整列表(和已知问题)。

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 贡献 -->

贡献

贡献是使开源社区成为一个如此令人惊叹的学习、激励和创造的地方的原因。我们非常感谢您做出的任何贡献。

如果您有建议可以使这个项目更好,请fork该仓库并创建一个拉取请求。您也可以简单地用"enhancement"标签打开一个问题。

别忘了给项目点个星!再次感谢!

  1. Fork 该项目
  2. 创建您的特性分支 (git checkout -b feature/amazing_feature)
  3. 提交您的更改 (git commit -m '添加一些amazing_feature')
  4. 推送到分支 (git push origin feature/amazing_feature)
  5. 打开一个拉取请求
<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 许可证 -->

许可证

根据Apache 2.0许可证分发。有关更多信息,请参阅LICENSE

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 联系方式 -->

联系方式

<div align="left"> <a href="https://www.georgian.io"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/d341ec9c-be4e-4c9c-bb6e-a62641a07052.png" alt="Logo" width="auto" height="80"> </a> </div>
<!-- --><!-- --><!-- --><!-- -->
Benjamin Ye[![Github][BenGithub]][BenLinkedIn-url][![LinkedIn][BenLinkedIn]][BenLinkedIn-url][![eMail][eMail]][BenEmail-url]

项目链接:https://github.com/georgian-io/oats

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 致谢 --> ## 致谢 我要感谢Georgian的同事们在这个过程中提供的所有帮助和建议。 * [Angeline Yasodhara](mailto:angeline@georgian.io) * [Akshay Budhkar](mailto:akshay@georgian.io) * [Borna Almasi](mailto:borna@georgian.io) * [Parinaz Sobhani](mailto:parinaz@georgian.io) * [Rodrigo Ceballos Lentini](mailto:rodrigo@georgian.io)

我还要特别感谢[Darts][Darts-url](用于时间序列预测)和[PyOD][PyOD-url](用于一般异常检测)的所有贡献者,他们的项目使得时间序列异常检测领域的直接扩展成为可能。

最后,我不能不提到Rice大学的DATA实验室,他们出色的[TODS][TODS-url]包是这个项目的主要灵感来源。如果你正在寻找AutoML支持,请一定要去看看他们的项目。

[![Darts][Darts]][Darts-url] [![PyOD][PyOD]][PyOD-url] [![TODS][TODS]][TODS-url]

<p align="right">(<a href="#readme-top">返回顶部</a>)</p>

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多