FraudAmazonDataset

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

基类:FraudDataset

亚马逊欺诈数据集

亚马逊数据集包含乐器类别的产品评论。获得超过 80% 好评投票的用户被标记为良性实体,而获得低于 20% 好评投票的用户被标记为欺诈实体。可以在亚马逊数据集上执行欺诈用户检测任务,这是一个二元分类任务。从 https://arxiv.org/pdf/2005.10150.pdf 中提取的 25 个手工特征被用作原始节点特征。

用户是图中的节点,存在三种关系:1. U-P-U:连接至少评论过一个相同产品的用户。2. U-S-U:连接在一周内拥有至少一个相同星级评分的用户。3. U-V-U:连接评论文本相似度(通过 TF-IDF 测量)在前 5% 的所有用户。

统计信息

  • 节点数:11,944

    • U-P-U:351,216

    • U-S-U:7,132,958

    • U-V-U:2,073,474

  • 类别

    • 阳性(欺诈):821

    • 阴性(良性):7,818

    • 未标记:3,305

  • 阳性-阴性比例:1 : 10.5

  • 节点特征维度:25

参数:
  • 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 (callable, optional) – 一个转换函数,接收 DGLGraph 对象并返回转换后的版本。每次访问时都会对 DGLGraph 对象进行转换。

示例

>>> dataset = FraudAmazonDataset()
>>> 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__()

数据示例数量