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