FraudYelpDataset

class dgl.data.FraudYelpDataset(raw_dir=None, random_seed=717, train_size=0.7, val_size=0.1, force_reload=False, verbose=True, transform=None)[source]

基类: FraudDataset

Fraud Yelp 数据集

Yelp 数据集包括 Yelp 过滤(垃圾评论)和推荐(正常评论)的酒店和餐厅评论。可以进行垃圾评论检测任务,这是一个二分类任务。从 http://dx.doi.org/10.1145/2783258.2783370 中提取了 32 个手工特征作为原始节点特征。评论是图中的节点,存在三种关系:

  1. R-U-R: 连接由同一用户发布的评论

  2. R-S-R: 连接同一产品下具有相同星级(1-5 星)的评论

  3. R-T-R: 连接同一产品下同一月份发布的两个评论。

统计信息

  • 节点数: 45,954

  • 边数

    • R-U-R: 98,630

    • R-T-R: 1,147,232

    • R-S-R: 6,805,486

  • 类别

    • 正例 (垃圾评论): 6,677

    • 负例 (正常评论): 39,277

  • 正负例比例: 1 : 5.9

  • 节点特征维度: 32

参数:
  • raw_dir (str) – 指定存储下载数据或已有的输入数据的目录。默认为: ~/.dgl/

  • random_seed (int) – 指定分割数据集时使用的随机种子。默认为: 717

  • train_size (float) – 数据集的训练集大小。默认为: 0.7

  • val_size (float) – 数据集的验证集大小,测试集大小为 (1 - train_size - val_size)。默认为: 0.1

  • force_reload (bool) – 是否重新加载数据集。默认为: False

  • verbose (bool) – 是否打印进度信息。默认为: True。

  • transform (可调用对象, 可选) – 一个转换函数,它接收一个 DGLGraph 对象并返回一个转换后的版本。DGLGraph 对象在每次访问前都会被转换。

示例

>>> dataset = FraudYelpDataset()
>>> graph = dataset[0]
>>> num_classes = dataset.num_classes
>>> feat = graph.ndata['feature']
>>> label = graph.ndata['label']
__getitem__(idx)

获取图对象

参数:

idx (int) – 项目索引

返回值:

图结构、节点特征、节点标签和掩码

  • ndata['feature']: 节点特征

  • ndata['label']: 节点标签

  • ndata['train_mask']: 训练集掩码

  • ndata['val_mask']: 验证集掩码

  • ndata['test_mask']: 测试集掩码

返回类型:

dgl.DGLGraph

__len__()

数据示例的数量