vc1492a/PyNomaly

Anomaly detection using LoOP: Local Outlier Probabilities, a local density based outlier detection method providing an outlier score in the range of [0,1].

解决的问题

PyNomaly 是 Local Outlier Probabilities (LoOP) 的 Python 实现,用于检测数据集中的异常值。与传统方法提供原始分数不同,LoOP 提供 0 到 1 之间的归一化分数,可直接解释为某个数据点是异常值的概率。

工作原理

该库通过多步骤流程计算异常值概率:

  1. 最近邻距离:为每个观测值找到 k 个最近邻。
  2. 标准距离:计算这些距离的均方根,以捕捉平均邻居距离。
  3. 概率距离:通过“范围”参数(lambda)缩放标准距离,以控制敏感度。
  4. 概率局部离群因子 (PLOF):计算观测值的概率距离与其邻居平均概率距离的比值。
  5. 归一化 PLOF (nPLOF):应用归一化常数,确保不同聚类间的分数可比性。
  6. 局部离群概率 (LoOP):对最终比值应用高斯误差函数,生成 0 到 1 之间的概率。

适用人群

专为需要密度基础异常检测工具、并希望获得可解释的概率结果而非任意分数的数据科学家和实践者设计。

特色亮点

  • 可解释的分数:输出为归一化概率 [0, 1]。
  • 聚类感知:支持可选的聚类标签,可计算相对于特定组而非整个数据集的异常概率。
  • 性能优化:集成 Numba 实现 JIT 编译和多核并行处理,同时利用 Scipy 优化距离计算。
  • 灵活的距离度量:允许用户自定义距离矩阵和邻居矩阵,使用非欧几里得距离度量。
  • 流式支持:包含针对流式数据的改进方法,避免昂贵的全数据集重拟合。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目