用于 GraphSage 算法的 json 格式的多个图的 networkx 数据集

networkx dataset of multiple graphs in json format for GraphSage algorithm

我正在尝试以 json 格式创建多个 networkx 图的数据集。我的目标是使用这个带有标签的数据集来对我的网络进行监督训练。 Networkx 可以为单个图转储 json 格式。但是,我不确定如何在同一个 json 文件中处理多个图表。

GraphSage 文档声称 https://github.com/williamleif/GraphSAGE/tree/master/example_data 处的示例有多个图表。

The example_data subdirectory contains a small example of the protein-protein interaction data, which includes 3 training graphs + one validation graph and one test graph.

但是,当我将 example-data toy-ppi-G.json 导入 python 时,我无法区分不同的图形或者只有一个图形。来自 json 的数据具有以下键:

import json

with open('toy-ppi-G.json') as f:
    data = json.load(f)

data.keys()

# result:
dict_keys(['directed', 'graph', 'nodes', 'links', 'multigraph'])

我的目标是了解多个图形的 json 格式,以便我可以创建自己的数据集并将其用于训练目的。

总体思路是,您可以将多个图表示为一个大图的不相交组件。这就是他们在 GraphSAGE 存储库中所做的,您也可以这样做。

您可以将多个图存储在同一个 json 文件中:只要两个不同的图之间没有边,GNN 也会将它们“视为”分开的。

我在 my library for GNNs 的文档中对此进行了解释,这里是邻接和节点特征矩阵的表示,其中颜色代表不同的图形:

因此,要回答您的问题,只需在图中按顺序枚举您的节点并将它们添加到 json 文件中。保持相同的索引以添加边。