2016-12-01 62 views
0

我已经运行模块化edge_weight/randomized在1的分辨率,在同一网络至少20倍。这是我基于以下规则创建的同一个网络。如果两个节点共有至少一个项目,则相关。每次运行模块化时,我都会在社区中获得一点点不同的节点分布。此外,我得到9或10个社区,但它永远不会一致。任何评论或帮助非常感谢。迭代模块化

回答

0

我认为答案是在算法的随机部分。你可以在这里找到更多的细节:

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

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

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

+0

谢谢。欣赏它。如果我在同一个网络上运行100次模块化,并根据在100次运行中保持至少一定百分比(例如60%)或更高的关系来选择一个一致的网络,并将其称为我的最终模块化,这是否正确?根据最高聚类系数等网络拓扑参数选择60%。我正在构建模块性,只有那些沿着100次试验的模块化算法被称为60%或更高的边缘。 – mparida

1

我找到了解决我的问题,使用一致聚类。这是描述它的论文。一种获得最优聚类的方法不需要在使用谱聚类的高维空间中解决它们,而是反复运行该算法,直到不能实现更多的分区。这里是文章和完整的解释细节:

SCIENTIFIC REPORTS | 2:336 | DOI:10.1038/srep00336 复杂网络中的共识聚类Andrea Lancichinetti & Santo Fortunato

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

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