网络中自上而下的社区检测

top-down community detection in a network

我正在尝试找到一种以自上而下的方式查找网络社区的方法。大多数可用的算法(例如在 igraph 包中)都是自下而上的——也就是说,它们首先假设所有节点都是单例社区,然后将它们组合成更大的社区。我想反过来,类似于决策树的构建方式:从整个网络开始,然后找到一个可以改进某些 "measure of information" 等

的拆分

有人知道这样的算法或者这样的措施吗?我在文献中找不到这样的东西,但也许我遗漏了什么。

此外,模块化的一些措施让我感到困扰的是,如果您将整个网络视为一个模块,那么所有边都在模块内并且不存在模块外边,所以这似乎是一个完美的划分一个模块。有没有克服这个限制的措施?

我觉得Newman's algorithm符合你的要求

它的工作原理是计算 "network modularity",然后将网络分成两组。之后它递归地将相同的原则应用于新形成的组,直到不可能进一步增加模块化。

也应该在igraph中实施。至少在 r version.