torch_geometric.transforms.NodePropertySplit
- class NodePropertySplit(property_name: str, ratios: List[float], ascending: bool = True)[source]
Bases:
BaseTransform根据给定的节点属性创建一个具有分布偏移的节点级分割,如“评估图模型在结构分布偏移下的鲁棒性和不确定性”论文中所提出的(函数名称:
node_property_split)。它将给定图中的节点根据其结构属性分成五个不相交的部分。 这可以用于具有分布变化的传导节点预测任务。 它考虑了节点的分布内(ID)和分布外(OOD)子集。 ID子集包括训练、验证和测试部分,而OOD子集包括验证和测试部分。 因此,它为每个图创建了五个相关的节点掩码向量,其中三个用于ID节点(
id_train_mask,id_val_mask,id_test_mask),两个用于OOD节点(ood_val_mask,ood_test_mask)。这个类实现了三种特定的策略,用于在图中引发分布变化——基于流行度、局部性或密度。
- Parameters:
from torch_geometric.transforms import NodePropertySplit from torch_geometric.datasets.graph_generator import ERGraph data = ERGraph(num_nodes=1000, edge_prob=0.4)() property_name = 'popularity' ratios = [0.3, 0.1, 0.1, 0.3, 0.2] transform = NodePropertySplit(property_name, ratios) data = transform(data)