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

Создание графика

Вы можете добавить ребра, как показано ниже, и он автоматически создаст узлы, значение по умолчанию – 1для ребер, если вы ничего не указали

import networkx as nx
G = nx.Graph()
G.add_edge(1, 2)
G.add_edge(2, 3)
G.add_edge(2, 4)
G.add_edge(3, 4)
G.add_edge(4, 1)

Добавить ребра с весом

G.add_edge(4, 5, weight=0.9)

Сведения об узлах и ребрах

Просто края

G.edges()

Ребра с весом

G.edges().data()

Вы можете сделать то же самое для узлов

G.nodes()

Узлы с фичами (если есть)

G.nodes().data()

Визуализировать

Вы можете сделать фигуру из этого графика, и он будет визуализировать узлы и ребра.

nx.draw(G)

Это создаст график, и он не будет одинаковым каждый раз, потому что нет места для узлов.

Импорт данных из уже существующих источников

Клонировать репозиторий

!git clone https://github.com/Adron55/graph_on_machine_learning.git

Приведенный выше код поможет вам прочитать файл из места назначения и преобразовать в график. Метки предназначены для рисования графиков и их именования.

G = nx.read_edgelist('graph_on_machine_learning/graph.txt', nodetype=int, create_using=nx.DiGraph())
labels = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E',5: 'F'}
nx.draw(G, labels=labels)

После преобразования наших данных в Graph мы можем выполнять множество вычислений.

Кратчайший путь

Мы можем найти кратчайший путь среди узлов.

nx.shortest_path(G, 4, 1)

Циклы графика

Вы можете повторять и видеть циклы графика

for c in nx.simple_cycles(G):
    print(c)

Колаб ссылка