DeepOD
DeepOD 是一个基于深度学习的开源 Python 库,专注于解决表格数据和时间序列数据中的异常检测难题。在金融风控、工业监控等场景中,传统方法往往难以捕捉复杂的非线性模式,而 DeepOD 通过引入先进的深度学习技术,能够更精准地识别出数据中的离群点和潜在风险。
这款工具特别适合数据科学家、算法研究人员以及需要构建高可靠性监测系统的开发者使用。它最大的亮点在于集成了 27 种前沿的无监督及弱监督异常检测算法,涵盖了基于重构、表示学习和自监督学习等多种主流技术路线。DeepOD 提供了统一且简洁的 API 接口,风格与 Scikit-learn 和 PyOD 高度一致,让用户仅需几行代码即可调用如 TimesNet、DeepSVDD 等状态-of-the-art(SOTA)模型。此外,它还内置了全面的评测基准,支持 LSTM、Transformer 等多种网络结构灵活插拔,极大地方便了学术研究与模型对比实验。无论是快速验证想法还是部署生产级应用,DeepOD 都能提供高效、灵活的支持。
使用场景
某金融科技公司风控团队正在构建实时交易反欺诈系统,需从海量流水中精准识别未知的异常转账行为。
没有 DeepOD 时
- 算法选型困难:面对复杂的非线性欺诈模式,传统统计方法失效,团队需手动复现多篇论文代码,耗时数周却难以复现 SOTA 效果。
- 数据适配繁琐:处理时间序列交易数据时,需分别编写 LSTM、Transformer 等不同网络的预处理与训练逻辑,代码冗余且维护成本极高。
- 评估标准不一:缺乏统一的无监督/弱监督评估框架,不同模型间的 AUC、F1 分数对比困难,导致模型迭代方向模糊。
使用 DeepOD 后
- 一键调用前沿模型:直接通过统一 API 调用 DevNet(弱监督)或 TimesNet(时序)等 27 种内置算法,将模型验证周期从数周缩短至几小时。
- 灵活架构无缝切换:利用 DeepOD 对时序数据的原生支持,轻松插拔 TCN、GRU 等网络结构,无需重写底层代码即可适配交易流特征。
- 标准化评测体系:借助内置的
tabular_metrics和ts_metrics,团队能在同一基准下快速量化各模型表现,迅速锁定最优欺诈检测方案。
DeepOD 通过统一的高层接口与丰富的深度学习基座,让风控团队能专注于业务逻辑而非算法实现,显著提升了异常检测的落地效率与准确率。
运行环境要求
- 未说明
未说明
未说明

快速开始
Python 深度异常检测/离群点检测(DeepOD)
.. image:: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing.yml/badge.svg :target: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing.yml :alt: 测试2
.. image:: https://readthedocs.org/projects/deepod/badge/?version=latest :target: https://deepod.readthedocs.io/en/latest/?badge=latest :alt: 文档状态
.. image:: https://app.codacy.com/project/badge/Grade/2c587126aac2441abb917c032189fbe8 :target: https://app.codacy.com/gh/xuhongzuo/DeepOD/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade :alt: Codacy
.. image:: https://coveralls.io/repos/github/xuhongzuo/DeepOD/badge.svg?branch=main :target: https://coveralls.io/github/xuhongzuo/DeepOD?branch=main :alt: Coveralls
.. image:: https://static.pepy.tech/personalized-badge/deepod?period=total&units=international_system&left_color=black&right_color=orange&left_text=下载量 :target: https://pepy.tech/project/deepod :alt: 下载量
.. image:: https://img.shields.io/badge/license-BSD2-blue :alt: 许可证
DeepOD 是一个基于深度学习的开源 Python 库,用于 离群点检测 <https://en.wikipedia.org/wiki/Anomaly_detection>_ 和 异常检测 <https://en.wikipedia.org/wiki/Anomaly_detection>_。DeepOD 支持表格数据和时间序列数据的异常检测。
DeepOD 包含 27 种基于深度学习的离群点检测/异常检测算法(采用无监督或弱监督范式)。未来还将加入更多基准算法。
DeepOD 的特点包括:
- 各种算法之间的 统一 API。
- 最先进的模型,涵盖基于重建、表示学习和自监督学习的最新深度学习方法。
- 全面的测试平台,可用于在基准数据集上直接测试不同的模型(非常推荐用于学术研究)。
- 多功能性,适用于多种数据类型,包括表格数据和时间序列数据(未来 DeepOD 还将支持图像、图、日志、轨迹等其他数据类型,欢迎提交 PR :telescope:)。
- 可以将 多样化的网络结构 插入到检测模型中,目前我们支持 LSTM、GRU、TCN、卷积神经网络和 Transformer 等用于时间序列数据的网络。(也欢迎提交 PR :sparkles:)
如果您对我们的项目感兴趣,我们非常高兴收到您的点赞和叉子 :thumbsup: :beers: .
安装
可以通过以下方式安装 DeepOD 框架:
.. code-block:: bash
pip install deepod
安装开发版本(强烈推荐)
.. code-block:: bash
git clone https://github.com/xuhongzuo/DeepOD.git
cd DeepOD
pip install .
用法
直接使用 DeepOD 中的检测模型: ::::::::::::::::::::::::::::::::::::::::::
使用 DeepOD 只需几行代码即可。这种 API 风格与 Sklean <https://github.com/scikit-learn/scikit-learn>_ 和 PyOD <https://github.com/yzhao062/pyod>_ 相同。
对于表格数据异常检测:
.. code-block:: python
# 无监督方法
from deepod.models.tabular import DeepSVDD
clf = DeepSVDD()
clf.fit(X_train, y=None)
scores = clf.decision_function(X_test)
# 弱监督方法
from deepod.models.tabular import DevNet
clf = DevNet()
clf.fit(X_train, y=semi_y) # semi_y 使用 1 表示已知异常,0 表示未标记数据
scores = clf.decision_function(X_test)
# 表格数据异常检测评估
from deepod.metrics import tabular_metrics
auc, ap, f1 = tabular_metrics(y_test, scores)
对于时间序列异常检测:
.. code-block:: python
# 时间序列异常检测方法
from deepod.models.time_series import TimesNet
clf = TimesNet()
clf.fit(X_train)
scores = clf.decision_function(X_test)
# 时间序列异常检测评估
from deepod.metrics import ts_metrics
from deepod.metrics import point_adjustment # 对时间序列异常进行点级调整
eval_metrics = ts_metrics(labels, scores)
adj_eval_metrics = ts_metrics(labels, point_adjustment(labels, scores))
测试平台用法: ::::::::::::::::::::::::::::::::::::::::::
测试平台包含了测试异常检测模型的完整流程,包括数据加载、预处理、异常检测和评估。
请参考 testbed/
testbed/testbed_unsupervised_ad.py用于测试无监督的表格数据异常检测模型。testbed/testbed_unsupervised_tsad.py用于测试无监督的时间序列异常检测模型。
关键参数:
--input_dir:包含数据集(.csv、.npy)的文件夹名称--dataset:FULL表示测试文件夹中的所有文件,或者用逗号分隔的数据集名称列表(例如,“10_cover*,20_letter*”)--model:异常检测模型名称--runs:运行检测模型的次数,最终报告平均性能及标准差值
示例:
- 下载
ADBench <https://github.com/Minqi824/ADBench/tree/main/adbench/datasets/>_ 数据集。 - 将
dataset_root变量修改为数据集所在的目录。 input_dir是dataset_root下的子文件夹名称,例如“Classical”或“NLP_by_BERT”。- 在终端中使用以下命令
.. code-block:: bash
cd DeepOD
pip install .
cd testbed
python testbed_unsupervised_ad.py --model DeepIsolationForest --runs 5 --input_dir ADBench
已实现的模型
**表格数据异常检测模型:**
.. csv-table::
:header: "模型", "会议/期刊", "年份", "类型", "标题"
:widths: 4, 4, 4, 8, 20
Deep SVDD,ICML,2018年,无监督,深度单类分类 [#Ruff2018Deep]_
REPEN,KDD,2018年,无监督,基于随机距离的异常检测中超高维数据表示学习 [#Pang2019Repen]_
RDP,IJCAI,2020年,无监督,通过预测随机距离进行无监督表示学习 [#Wang2020RDP]_
RCA,IJCAI,2021年,无监督,RCA:一种用于异常检测的深度协作自编码器方法 [#Liu2021RCA]_
GOAD,ICLR,2020年,无监督,面向通用数据的基于分类的异常检测 [#Bergman2020GOAD]_
NeuTraL,ICML,2021年,无监督,用于超越图像的深度异常检测的神经变换学习 [#Qiu2021Neutral]_
ICL,ICLR,2022年,无监督,基于内部对比学习的表格数据异常检测 [#Shenkar2022ICL]_
DIF,TKDE,2023年,无监督,用于异常检测的深度孤立森林 [#Xu2023DIF]_
SLAD,ICML,2023年,无监督,引人入胜的监督信号及其来源:基于尺度学习的深度异常检测 [#Xu2023SLAD]_
DevNet,KDD,2019年,弱监督,基于偏差网络的深度异常检测 [#Pang2019DevNet]_
PReNet,KDD,2023年,弱监督,深度弱监督异常检测 [#Pang2023PreNet]_
Deep SAD,ICLR,2020年,弱监督,深度半监督异常检测 [#Ruff2020DSAD]_
FeaWAD,TNNLS,2021年,弱监督,用于弱监督异常检测的自编码器特征编码 [#Zhou2021FeaWAD]_
RoSAS,IP&M,2023年,弱监督,RoSAS:具有抗污染连续监督的深度半监督异常检测 [#Xu2023RoSAS]_
**时间序列异常检测模型:**
.. csv-table::
:header: "模型", "会议/期刊", "年份", "类型", "标题"
:widths: 4, 4, 4, 8, 20
DCdetector,KDD,2023年,无监督,DCdetector:用于时间序列异常检测的双注意力对比表示学习 [#Yang2023dcdetector]_
TimesNet,ICLR,2023年,无监督,TIMESNET:用于通用时间序列分析的时序二维变化建模 [#Wu2023timesnet]_
AnomalyTransformer,ICLR,2022年,无监督,Anomaly Transformer:基于关联差异的时间序列异常检测 [#Xu2022transformer]_
NCAD,IJCAI,2022年,无监督,用于时间序列的神经上下文异常检测 [#Carmona2022NCAD]_
TranAD,VLDB,2022年,无监督,TranAD:用于多变量时间序列数据异常检测的深度Transformer网络 [#Tuli2022TranAD]_
COUTA,TKDE,2024年,无监督,用于无监督时间序列异常检测的校准单类分类 [#Xu2024COUTA]_
USAD,KDD,2020年,无监督,USAD:多变量时间序列上的无监督异常检测
DIF,TKDE,2023年,无监督,用于异常检测的深度孤立森林 [#Xu2023DIF]_
TcnED,TNNLS,2021年,无监督,多变量时间序列中的异常检测与诊断评估 [#Garg2021Evaluation]_
Deep SVDD(TS),ICML,2018年,无监督,深度单类分类 [#Ruff2018Deep]_
DevNet(TS),KDD,2019年,弱监督,基于偏差网络的深度异常检测 [#Pang2019DevNet]_
PReNet(TS),KDD,2023年,弱监督,深度弱监督异常检测 [#Pang2023PreNet]_
Deep SAD(TS),ICLR,2020年,弱监督,深度半监督异常检测 [#Ruff2020DSAD]_
注意:
- 对于Deep SVDD、DevNet、PReNet和DeepSAD,我们采用了能够处理时间序列数据的网络结构。这些模型的类中包含一个名为 ``network`` 的参数,通过更改该参数,可以使用不同的网络。
- 目前我们支持‘TCN’、‘GRU’、‘LSTM’、‘Transformer’、‘ConvSeq’和‘DilatedConv’。
引用
~~~~~~~~~~~~~~~~~
如果您在工作中使用了本库,请引用以下论文:
Xu, H., Pang, G., Wang, Y., & Wang, Y. (2023). 深度孤立森林用于异常检测。IEEE知识与数据工程汇刊,35(12),12591-12604。
Xu, H., Wang, Y., Jian, S., Liao, Q., Wang, Y., & Pang, G. (2024). 用于无监督时间序列异常检测的校准单类分类。IEEE知识与数据工程汇刊。
您也可以使用下面的BibTex条目进行引用。
.. code-block:: bibtex
@ARTICLE{xu2023deep,
author={徐洪祚、庞冠松、王义杰、王永军},
journal={IEEE知识与数据工程汇刊},
title={用于异常检测的深度孤立森林},
year={2023},
volume={35},
number={12},
pages={12591--12604},
doi={10.1109/TKDE.2023.3270293}
}
.. code-block:: bibtex
@ARTICLE{xu2024calibrated,
title={用于无监督时间序列异常检测的校准单类分类},
author={徐洪祚、王义杰、简松雷、廖青、王永军、庞冠松},
journal={IEEE知识与数据工程汇刊},
year={2024},
publisher={IEEE}
}
星标历史
~~~~~~~~~~~~~~~~~
当前星标数:
.. image:: https://img.shields.io/github/stars/xuhongzuo/deepod?labelColor=black&color=red
:alt: GitHub仓库星标数
.. image:: https://api.star-history.com/svg?repos=xuhongzuo/DeepOD&type=Date
:target: https://star-history.com/#xuhongzuo/DeepOD&Date
:align: center
参考文献
~~~~~~~~~~~~~~~~~
.. [#Ruff2018Deep] Ruff, Lukas, et al. “深度单类分类”。ICML。2018年。
.. [#Pang2019Repen] Pang, Guansong, et al. “基于随机距离的异常检测中超高维数据表示学习”。KDD(第2041–2050页)。2018年。
.. [#Wang2020RDP] Wang, Hu, et al. “通过预测随机距离进行无监督表示学习”。IJCAI(第2950–2956页)。2020年。
.. [#Liu2021RCA] Liu, Boyang, et al. “RCA:一种用于异常检测的深度协作自编码器方法”。IJCAI(第1505–1511页)。2021年。
.. [#Bergman2020GOAD] Bergman, Liron, 和 Yedid Hoshen. “面向通用数据的基于分类的异常检测”。ICLR。2020年。
.. [#Qiu2021Neutral] Qiu, Chen, et al. “用于超越图像的深度异常检测的神经变换学习”。ICML。2021年。
.. [#Shenkar2022ICL] Shenkar, Tom, et al. “基于内部对比学习的表格数据异常检测”。ICLR。2022年。
.. [#Pang2019DevNet] Pang, Guansong, et al. “基于偏差网络的深度异常检测”。KDD。2019年。
.. [#Pang2023PreNet] Pang, Guansong, et al. “深度弱监督异常检测”。KDD。2023年。
.. [#Ruff2020DSAD] Ruff, Lukas, et al. “深度半监督异常检测”。ICLR。2020年。
.. [#Zhou2021FeaWAD] Zhou, Yingjie, et al. “用于弱监督异常检测的自编码器特征编码”。TNNLS。2021年。
.. [#Xu2022transformer] Xu, Jiehui, et al. “Anomaly Transformer:基于关联差异的时间序列异常检测”。ICLR。2022年。
.. [#Wu2023timesnet] Wu, Haixu, et al. “TimesNet:用于通用时间序列分析的时序二维变化建模”。ICLR。2023年。
.. [#Yang2023dcdetector] 杨一元等.“DCdetector:用于时间序列异常检测的双注意力对比表征学习”。KDD,2023年。
.. [#Tuli2022TranAD] 图利·什雷什特等.“TranAD:用于多变量时间序列数据异常检测的深度Transformer网络”。VLDB,2022年。
.. [#Carmona2022NCAD] 卡尔莫纳·克里斯·U. 等.“面向时间序列的神经上下文异常检测”。IJCAI,2022年。
.. [#Garg2021Evaluation] 加格·阿斯塔等.“多变量时间序列中异常检测与诊断的评估”。TNNLS,2021年。
.. [#Xu2024COUTA] 徐洪佐等.“用于无监督时间序列异常检测的校准型一类分类方法”。TKDE,2024年。
.. [#Xu2023DIF] 徐洪佐等.“用于异常检测的深度孤立森林”。TKDE,2023年。
.. [#Xu2023SLAD] 徐洪佐等.“迷人的监督信号及其来源:基于尺度学习的深度异常检测”。ICML,2023年。
.. [#Xu2023RoSAS] 徐洪佐等.“RoSAS:具有抗污染连续监督的深度半监督异常检测方法”。IP&M,2023年。
版本历史
0.4.12023/09/070.3.02023/07/180.2.02022/12/010.1.12022/11/02常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器