torch_geometric.transforms.RandomLinkSplit

class RandomLinkSplit(num_val: Union[int, float] = 0.1, num_test: Union[int, float] = 0.2, is_undirected: bool = False, key: str = 'edge_label', split_labels: bool = False, add_negative_train_samples: bool = True, neg_sampling_ratio: float = 1.0, disjoint_train_ratio: Union[int, float] = 0.0, edge_types: Optional[Union[Tuple[str, str, str], List[Tuple[str, str, str]]]] = None, rev_edge_types: Optional[Union[Tuple[str, str, str], List[Optional[Tuple[str, str, str]]]]] = None)[source]

Bases: BaseTransform

执行边缘级别的随机分割,将DataHeteroData对象分割为训练集、验证集和测试集(功能名称:random_link_split)。分割的方式是确保训练集不包含验证集和测试集中的边;验证集不包含测试集中的边。

from torch_geometric.transforms import RandomLinkSplit

transform = RandomLinkSplit(is_undirected=True)
train_data, val_data, test_data = transform(data)
Parameters:
  • num_val (intfloat, 可选) – 验证边的数量。 如果设置为 \([0, 1]\) 中的浮点值,则表示 包含在验证集中的边的比例。 (默认: 0.1)

  • num_test (intfloat, 可选) – 测试边的数量。 如果设置为 \([0, 1]\) 范围内的浮点值,则表示 包含在测试集中的边的比例。 (默认: 0.2)

  • is_undirected (bool) – 如果设置为 True,则假定图是无向的,并且正负样本不会在不同分割之间泄露(反向)边的连通性。这只会影响图的分割,标签数据不会以无向方式返回。此选项在二分边类型或 edge_type != rev_edge_type 时被忽略。(默认值:False

  • key (str, optional) – 保存真实标签的属性的名称。 如果 data[key] 不存在,它将自动创建并代表一个二分类任务 (1 = 边, 0 = 无边)。 如果 data[key] 存在,它必须是一个从 0num_classes - 1 的分类标签。 在负采样之后,标签 0 代表负边, 而标签 1num_classes 代表正边的标签。(默认: "edge_label")

  • split_labels (bool, 可选) – 如果设置为 True,将会分割 正负标签并将它们分别保存在不同的属性 "pos_edge_label""neg_edge_label" 中。 (默认: False)

  • add_negative_train_samples (bool, optional) – 是否添加负训练样本用于链接预测。 如果模型已经执行了负采样,则应将该选项设置为 False。 否则,除非再次执行负采样,否则添加的负样本将在训练迭代中保持不变。 (默认值: True)

  • neg_sampling_ratio (float, optional) – 采样的负边与正边数量的比率。(默认值:1.0

  • disjoint_train_ratio (intfloat, 可选) – 如果设置为大于 0.0 的值,训练边将不会用于消息传递和监督。相反,disjoint_train_ratio 边将用作训练期间的监督的真实标签。(默认值:0.0

  • edge_types (Tuple[EdgeType] 或 List[EdgeType], 可选) – 用于在操作HeteroData对象时执行边级别拆分的边类型。 (默认: None)

  • rev_edge_types (Tuple[EdgeType] or List[Tuple[EdgeType]], optional) – edge_types 的反向边类型,用于在操作 HeteroData 对象时使用。 这将确保反向的边会被相应地分割,以防止任何数据泄露。 如果不存在反向连接,可以为 None。 (默认值: None)