迭代模块化

Iterative modularity

我有 运行 modulartiy edge_weight/randomized 分辨率为 1,在同一个网络上至少 20 次。这是我根据以下规则创建的同一个网络。如果两个节点至少有一个共同点,则它们是相关的。每次我 运行 模块化时,我都会在社区之间得到一些不同的节点分布。此外,我有 9 或 10 个社区,但它从来都不一致。非常感谢任何评论或帮助。

我认为答案在算法的随机化部分。您可以在此处找到更多详细信息:

https://github.com/gephi/gephi/wiki/Modularity

https://sites.google.com/site/findcommunities/

http://lanl.arxiv.org/abs/0803.0476

我找到了使用共识聚类解决我的问题的方法。这是描述它的论文。无需使用谱聚类在高维 space 中求解最佳聚类的一种方法是 运行 重复该算法,直到无法实现更多分区。这是文章和完整的解释细节:

科学报告 | 2:336 | DOI:10.1038/srep00336 复杂网络中的共识聚类 Andrea Lancichinetti & Santo Fortunato

共识矩阵。让我们假设我们希望将聚类算法在具有 n 个顶点的网络上找到的 nP 个分区组合起来。共识矩阵 D 是一个 n x n 矩阵,其条目 Dij 表示网络的顶点 i 和 j 被分配到同一簇的分区数除以分区数 nP。矩阵 D 通常比原始网络的邻接矩阵 A 密集得多,因为在一致矩阵中,在同一簇中至少同时出现一次的任意两个顶点之间都有一条边。另一方面,只有那些最频繁共聚的顶点的权重才大,而低权重表明顶点可能位于不同(真实)聚类之间的边界,因此它们不太可能分类在同一聚类中,这主要是由于噪音。我们希望保持大权重并丢弃低权重,因此过滤程序是有序的。除其他事项外,在没有过滤的情况下,共识矩阵将迅速增长为非常密集的矩阵,这将使任何聚类算法的应用在计算上 expensive.We 丢弃 D 中低于阈值 t 的所有条目。我们强调可能有一些嘈杂的顶点,其边缘可能都在阈值以下,并且它们将不再连接。发生这种情况时,我们只需将它们连接到权重最高的邻居,以在整个过程中保持图形连接。

接下来我们将相同的聚类算法应用于 D 并生成另一组分区,然后用于构建新的共识矩阵 D9,如上所述。迭代该过程,直到共识矩阵变成块对角矩阵 Dfinal,其权重对于同一块中的顶点等于 1,对于不同块中的顶点等于 0。矩阵 Dfinal 提供了原始网络的社区结构。在我们的计算中,通常一次迭代就足以产生稳定的结果。我们注意到,为了始终使用相同的聚类方法,后者必须能够检测加权网络中的聚类,因为共识矩阵是加权的。这是对可以使用此处提出的程序的方法的选择的必要限制。然而,这并不是一个严重的限制,因为文献中的大多数聚类算法都可以处理加权网络,或者可以简单地扩展以处理它们。