набор данных networkx из нескольких графиков в формате json для алгоритма GraphSage

#python #networkx

#python #networkx

Вопрос:

Я пытаюсь создать набор данных из нескольких графиков networkx в формате json. Моя цель — использовать этот набор данных с метками для контролируемого обучения моей сети. Networkx может сбрасывать формат json для одного графика. Однако я не уверен, как обрабатывать несколько графиков в одном файле json.

В документации GraphSage утверждается, что пример в https://github.com/williamleif/GraphSAGE/tree/master/example_data имеет несколько графиков.

Подкаталог example_data содержит небольшой пример данных взаимодействия белок-белок, который включает в себя 3 обучающих графика один график проверки и один тестовый график.

Однако, когда я импортирую игрушку example-data-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 для нескольких графиков, чтобы я мог создавать свои собственные наборы данных и использовать их для целей обучения.

Ответ №1:

Общая идея заключается в том, что вы можете представить несколько графиков как непересекающиеся компоненты одного большого графика. Это то, что они делают в репозитории GraphSAGE, и вы тоже можете это сделать.

Вы можете сохранить несколько ваших графиков в одном файле json: пока между двумя отдельными графами нет ребер, GNN также будет «видеть» их как отдельные.

Я объясняю это в документации моей библиотеки для GNNS, вот представление матриц смежности и характеристик узлов, где цвета представляют разные графики:

введите описание изображения здесь

Итак, чтобы ответить на ваш вопрос, просто последовательно перечислите свои узлы на графиках и добавьте их в файл json. Сохраняйте одинаковые индексы для добавления ребер.