我正在使用 igraph 社区检测,社区大小要么太小,要么太大。有没有办法指定检测到的社区的大小?如果没有,我有什么办法可以手动拆分或合并从 igraph 检测到的社区吗?谢谢!
最佳答案
虽然我认为不可能设置/指定 igraph
检测到的社区的大小 ,一些社区检测算法允许您指定您想要的数量个社区(分割/合并的替代方法)。
您可以使用cluster_spinglass()
功能及设置spins
是所需的社区数量。 或者使用一种分层方法,然后使用 cut_at()
要获得所需数量的社区,请使用 no
参数来指定您想要多少个社区。p>
示例代码:
# 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 .
关于r - 在 R 中设置检测到的社区的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38896546/