背景

现实世界中很多关系数据都可以建模成图/网络结构,在图上检测异常活动是一个非常重要的机器学习任务分支,尤其在社交网络和系统安全领域。

之前学习时尝试过多种图异常检测模型,但未有统一的模型框架和图数据处理格式,所以使用起来比较麻烦。现在 Github 上开源了一个大型的图数据异常检测仓库——PyGOD (Python Graph Outlier Detection)

PyGod

PyGOD 包括 10 多种最新的基于图的检测算法,如 DOMINANTGUIDE。为了一致性和可访问性,PyGOD 是在 PyTorch geometry (PyG) 和 PyTorch 之上开发的,并遵循 PyOD 的 API 设计,主要特性如下:

  • 统一的 API,详细的文档,以及各种基于图形的算法的交互式示例。
  • 全面覆盖 10 多个最新图形离群点检测器。
  • 完全支持多个级别的检测,如节点、边缘和图级任务 (WIP)。
  • 使用 PyG 简化数据处理——与 PyG 数据对象完全兼容。

下面通过官方的 5 行代码中可以看到用 PyGOD 检测异常值的示例:

1
2
3
4
5
6
7
8
9
10
11
# train a dominant detector
from pygod.models import DOMINANT

model = DOMINANT() # hyperparameters can be set here
model.fit(data) # data is a Pytorch Geometric data object

# get outlier scores on the input data
outlier_scores = model.decision_scores # raw outlier scores on the input data

# predict on the new data
outlier_scores = model.decision_function(test_data)

详细使用方法可以参考官方文档:

Github:https://github.com/pygod-team/pygod/

文档:https://docs.pygod.org/en/latest/