网络中自上而下的社区检测
top-down community detection in a network
我正在尝试找到一种以自上而下的方式查找网络社区的方法。大多数可用的算法(例如在 igraph 包中)都是自下而上的——也就是说,它们首先假设所有节点都是单例社区,然后将它们组合成更大的社区。我想反过来,类似于决策树的构建方式:从整个网络开始,然后找到一个可以改进某些 "measure of information" 等
的拆分
有人知道这样的算法或者这样的措施吗?我在文献中找不到这样的东西,但也许我遗漏了什么。
此外,模块化的一些措施让我感到困扰的是,如果您将整个网络视为一个模块,那么所有边都在模块内并且不存在模块外边,所以这似乎是一个完美的划分一个模块。有没有克服这个限制的措施?
我觉得Newman's algorithm符合你的要求
它的工作原理是计算 "network modularity",然后将网络分成两组。之后它递归地将相同的原则应用于新形成的组,直到不可能进一步增加模块化。
也应该在igraph
中实施。至少在 r version.
我正在尝试找到一种以自上而下的方式查找网络社区的方法。大多数可用的算法(例如在 igraph 包中)都是自下而上的——也就是说,它们首先假设所有节点都是单例社区,然后将它们组合成更大的社区。我想反过来,类似于决策树的构建方式:从整个网络开始,然后找到一个可以改进某些 "measure of information" 等
的拆分有人知道这样的算法或者这样的措施吗?我在文献中找不到这样的东西,但也许我遗漏了什么。
此外,模块化的一些措施让我感到困扰的是,如果您将整个网络视为一个模块,那么所有边都在模块内并且不存在模块外边,所以这似乎是一个完美的划分一个模块。有没有克服这个限制的措施?
我觉得Newman's algorithm符合你的要求
它的工作原理是计算 "network modularity",然后将网络分成两组。之后它递归地将相同的原则应用于新形成的组,直到不可能进一步增加模块化。
也应该在igraph
中实施。至少在 r version.