首页 文章

为什么igraph spinglass给我'Cannot work with unconnected graph'?

提问于
浏览
1

我正在尝试不同的社区检测算法,并能够获得所有社区检测算法期望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(Leading eigenvector,GN,InfoMap,Label propagation,Multi-level,Walktrap)中的所有其他社区检测算法一起工作,而不是spinglass .

2 回答

  • 1

    igraph中包含的spinglass聚类算法的实现仅适用于连通图 . 您必须将图形分解为其连接的组件,在每个连接的组件上运行聚类,然后手动合并聚类的成员资格向量 .

  • 0

    如前所述,

    igraph中包含的spinglass聚类算法的实现仅适用于连通图 . 您必须将图形分解为其连接的组件,在每个连接的组件上运行聚类,然后手动合并聚类的成员资格向量 .

    您可以使用iGraph的 clusters 方法分解主图,如下例所示:

    clusters    = g.clusters()
        giant       = clusters.giant() ## using the biggest component as an example, you can use the others here.
        communities = giant.community_spinglass()
    

相关问题