我正在使用igraph社区检测,社区规模太小或太大。有没有办法指定检测到的社区的大小?如果没有,有没有办法让我手动拆分或合并从igraph检测到的社区?谢谢!
答案 0 :(得分:0)
虽然我认为不可能设置/指定igraph
检测到的社区的 size ,但是某些社区检测算法允许您指定许多的方式您想要的社区(分割/合并的替代方案)。
您可以使用cluster_spinglass()
功能并将spins
设置为所需社区的数量。 或使用其中一种分层方法,然后使用cut_at()
获取所需数量的社区,使用no
参数指定所需的社区数量。
示例代码:
# Set up your graph object
g <-[an igraph object] # set up your graph
# Use spinglass to create a set number of communities
sg <- g %>% cluster_spinglass(spins = 10) # produces 10 communities using spinglass algorithm
# Use hierarchical methods and cut_at to create a set number of communities
walk <- g %>% cluster_walktrap() %>% cut_at(no = 10)
eb <- g %>% cluster_edge_betweenness() %>% cut_at(no = 10)
请注意,spinglass
方法会返回一个communities
对象,而cut_at
方法只会返回图形中所有节点的社区索引(即一个简单的数字)矢量)。
您可以在communities
help page上找到更多详细信息。