使用函数cluster_louvain在R的igraph中检测社区时,有没有办法设置分辨率参数?它对结果有很大的影响,因为该参数与节点之间的层次差异有关。谢谢。
最佳答案
最简单的方法是通过 resolution
包,可在此链接 https://github.com/analyxcompany/resolution 中找到。
基于这篇论文http://arxiv.org/pdf/0812.1770.pdf
它几乎有 2 个函数 cluster_resolution()
和 cluster_resolution_RandomOrderFULL()
。
在这两种情况下,您都可以指定分辨率 t
以及您想要的重复次数 rep
。并且,您可以在函数中使用 igraph 对象。
cluster_resolution_RandomOrderFULL(g,t=0.5)
cluster_resolution_RandomOrderFULL(g,rep=20)
注意/编辑:但它不接受签名网络!我正在尝试联系代码的所有者或自己对其进行定制以使其适合签名网络。
EDIT2:我能够从Brain Connectivity Toolbox翻译函数community_louvain.m从 Matlab 到 R。
这是github link对于signed_louvain()
你几乎可以直接用 ex 代替。 signed_louvain(g, gamma = 1, mod = '模块化')
它使用 igraph 或矩阵对象作为输入。如果它具有负值,则必须选择 mod = 'neg_sym'
或 'neg_asym'
。
关于r - 如何在igraph中设置Louvain模块化的分辨率参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43100556/