免费 python基于PyOD库实现数据异常检测(上)

  • 主题发起人 主题发起人 Scare
  • 开始时间 开始时间

Scare

0xFF|主权幽灵
07
908
172
奇源币
0
管理成员
工作人员
版主
VIP
PyOD是一个全面且易于使用的Python库,专门用于检测多变量数据中的异常点或离群点。异常点是指那些与大多数数据点显著不同的数据,它们可能表示错误、噪声或潜在的有趣现象。无论是处理小规模项目还是大型数据集,PyOD提供了50多种算法以满足用户的需求。PyOD的特点包括:

  1. 统一且用户友好的接口,适用于多种算法。
  2. 丰富的模型选择,从经典技术到最新的PyTorch深度学习方法。
  3. 高性能与高效率,利用numba和joblib实现即时编译与并行处理。
  4. 快速的训练和预测,通过SUOD框架实现。
PyOD官方仓库地址为:pyod,官方文档地址为:pyod-doc。PyOD安装命令如下:

pip install pyod


目录


1 使用说明​

1.1 PyOD背景介绍​

PyOD作者发布了一份长达45页的预印论文,名为ADBench: Anomaly Detection Benchmark,以及提供ADBench开源仓库对30种异常检测算法在57个基准数据集上的表现进行了比较。ADBench结构图如下所示:

img1.jpg


PyOD提供了这些算法的接口类实现,具体算法对应的接口见:pyod-implemented-algorithms。同时PyOD对于这些算法提供了统一的API接口,如下所示:

  • pyod.models.base.BaseDetector.fit():训练模型,对于无监督方法,目标变量y将被忽略。
  • pyod.models.base.BaseDetector.decision_function():使用已训练的检测器预测输入数据的异常分数。
  • pyod.models.base.BaseDetector.predict():使用已训练的检测器预测特定样本是否为异常点。
  • pyod.models.base.BaseDetector.predict_proba():使用已训练的检测器预测样本为异常点的概率。
  • pyod.models.base.BaseDetector.predict_confidence():预测模型对每个样本的置信度(可在predict和predict_proba中使用)。
  • pyod.models.base.BaseDetector.decision_scores_:训练数据的异常分数。分数越高,越异常。
  • pyod.models.base.BaseDetector.labels_:训练数据的二进制标签。0表示正常样本,1表示异常样本。
PyOD还提供了不同算法的基准比较结果,详见链接:benchmark。下图展示了各种算法的检测结果与实际结果,并标出了识别错误样本的数量:

img2.jpg


 
后退
顶部