将检测到的社区与基本事实进行比较

时间:2016-05-12 15:40:21

标签: r igraph modularity

我有一个igraph,顶点有一个描述已知社区的属性:

g=sample_gnm(10, 30, directed = F, loops = F)
communities=c("a", "b", "c")
E(g)$known_community=sample(communities, length(E(g)), replace = T)

然后我通过fastgreedy检测社区:

g_com=fastgreedy.community(g)

我需要将算法检测到的社区与已知社区进行比较。有没有办法从顶点信息中获取igraph社区对象,所以我可以使用compare()?如果不是,我怎么能比较它们?

1 个答案:

答案 0 :(得分:1)

查看?help的{​​{1}}页面。它说:

  

包含社区结构的社区对象;或数字   向量,第一个社区结构的成员向量。该   membership vector应该包含每个顶点的社区id   社区的编号从一个开始。

因此compare可以比较compare个对象或数字向量,其长度与顶点数相同。您模拟了一个包含10个顶点的网络,因此您的社区列表也应该有10个长度。您的错误是您尝试根据边缘而不是顶点来定义社区向量,因此您可以向量长度为30.

以下方法有效。

communities