在这个社区的几个人的帮助下,我一直在使用igraph 的基于模块化的集群实现对一些社交网络数据进行集群。
我在解释这个例程的输出以及如何使用它来生成检测到的每个社区的成员列表时遇到了一些麻烦。
该例程输出一个两列矩阵和一个模块化值列表。从文档:
合并:具有两列的矩阵,这表示树状图并包含算法执行的所有合并。每一行都是一个合并,它由合并的两个社区的 id 给出。社区 ID 是从零开始的整数,在零和顶点数 (N) 减一之间的社区属于各个顶点。矩阵的第一行给出了第一次合并,这个合并创建了社区 N,顶点的数量,第二次合并创建了社区 N+1,等等。
模块化:一个数字向量,包含执行每次合并后社区结构的模块化值。
使用此解释并查看手册页底部的示例,我认为此图中的社区是
1st community: 0 1 2 3 4
2nd community: 10 11 12 13 14
3rd community: 5 6 7 8 9
之前使用过这种方法的人可以确认正确的方法是否会产生这种结果吗?我基本上(i)忽略了最后两个合并,并且(ii)遍历了“合并”矩阵中的每一行,将每对顶点组合成一个集合,同时注意大于顶点数量的顶点值(和因此请参阅“合并”矩阵中的另一行)。