Классификация графов - PullRequest
1 голос
/ 22 марта 2020

Я делаю классификацию графиков, читаю файл списка ребер, разбиваю на поезда и проверяю, проверяю, является ли набор поездов связным графом, используя networkx:

import networkx as nx
trainGraph = nx.read_edgelist('trainEdgelist.txt', create_using=nx.Graph(), nodetype=int)
nx.is_connected(trainGraph)

Если я хочу использовать 10-кратное пересечение проверить и использовать что-то вроде:

from sklearn.model_selection import KFold
KFold(n_splits=10, random_state=None, shuffle=False)

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

Как добавить такое условие?

1 Ответ

1 голос
/ 05 апреля 2020

Я до сих пор не до конца понимаю вашу цель, постараюсь ответить как можно лучше

в основном KFold `вернуть сегментацию набора данных по его индексам, и это input - это массивоподобный объект, это «глупая» функция, которая просто разбивает массив без дальнейших логик c ...

, вам нужно создать набор данных со следующей структурой :

массивоподобный объект, где каждый элемент представляет собой связанный граф (и другой массив для его метки y, если это применимо в вашем случае)

, как только вы получите этот объект вы можете использовать KFold() для создания нескольких тестов и наборов поездов

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

  • удалите X случайных ребер и проверьте, подключен ли граф (сделайте это N раз)
  • добавьте ребра и узлы с шагом, как вы указали в комментарии, добавьте ребра по порядку и проверьте, подключен ли граф с каждым дополнением n

проблема в том, что они занимают много времени и могут не сходиться, сильно зависит от их ввода (случайное состояние и порядок ребер)

Мое предложение состоит в том, чтобы найти MST графика, это базовый связанный граф, чтобы создать его вариации, просто случайным образом добавить любое ребро / с, которые являются / не являются частью MST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...