Почему igraph spinglass выдает мне «Невозможно работать с несвязанным графом»?

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

Код

g = Graph.TupleList(tupleMapping)
cl = g.community_spinglass()

Ошибка

File "/Library/Python/2.7/site-packages/igraph/__init__.py", line 1265, in community_spinglass
membership = GraphBase.community_spinglass(self, *args, **kwds)
igraph._igraph.InternalError: Error at clustertool.cpp:286: Cannot work with unconnected graph, Invalid value

У меня есть ребра и вершины, и тот же граф работает со всеми другими алгоритмами обнаружения сообщества в igraph (ведущий собственный вектор, GN, InfoMap, распространение меток, многоуровневый, Walktrap), а не с вращающимся стеклом.


person MTA    schedule 29.12.2015    source источник


Ответы (2)


Реализация алгоритма кластеризации спинового стекла, включенная в igraph, работает только на связных графах. Вы должны разложить свой граф на его связанные компоненты, запустить кластеризацию для каждого из связанных компонентов, а затем вручную объединить векторы принадлежности кластеров.

person Tamás    schedule 30.12.2015

Как уже было сказано,

Реализация алгоритма кластеризации спинового стекла, включенная в igraph, работает только на связных графах. Вы должны разложить свой граф на его связанные компоненты, запустить кластеризацию для каждого из связанных компонентов, а затем вручную объединить векторы принадлежности кластеров.

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

    clusters    = g.clusters()
    giant       = clusters.giant() ## using the biggest component as an example, you can use the others here.
    communities = giant.community_spinglass()
person Felipe Leite Antunes    schedule 08.09.2017