社团检测 LFR 基准网络及其生成程序
背景
很早之前在 CSDN 上写的一篇文章社团检测领域的 LFR 基准网络及其生成程序,今天突然发现很多朋友留言说对「重叠社团的 LFR 基准网络生成程序」有较大的需求,就不再通过邮件一一进行发送,这篇博文统一附上下载方式并且介绍下社团检测领域中各种属性的 LFR 基准生成程序。
LFR 基准网络
首先是最简单的无向无权基准网络生产程序,之前已经写过一篇文章介绍,现在直接附过来。
以下是 Linux 下使用的版本,对于 Windows 下的同学可以参考博客 LFR 网络生成程序,没下载过也不知道能不能用。
下面介绍一下 LFR 生成程序的用法:
想要生成网络首先需要对配置文件 parameters.dat 进行修改:
1 | ############################################################################### |
以上的配置可以根据自己的需求进行修改,具体的参数介绍可以查看论文 Benchmark graphs for testing community detection algorithms,上面提供下载的压缩包中包含此论文。
配置好参数后在目录下 benchmark 目录下执行命令:
1 | $ .\benchmark |
执行命令后会生成三个文件:
network.dat
包含网络中的边
community.dat
包含每一个节点所属的类。
statistics.dat
包含度分布,社团大小分布,混合参数分布。
经过上述步骤之后就可以利用生成的网络进行算法性能测试。
以下介绍各种不同属性的重叠社团 LFR 基准网络生成程序:
- package1:生成无向无权的重叠社团基准网络;
- package2:生成无向加权的重叠社团基准网络;
- package3:生成有向无权的重叠社团基准网络;
- package4:生成有向加权的重叠社团基准网络;
- package5:生成层次基准网络,小社团可能包含在大社团中;
📢 以上源码都是使用 C++ 编写可能需要编译,命令使用方法参考每个包下的 Readme 文件。
此外,附上生成动态网络的基准程序。
- package6:生成社团检测中动态基准网络;
以上所有程序,如果不能翻墙的同学可以在 DreamHub 公众号回复 package,即可获取全部 LFR 基准程序的下载链接。
以上程序中的参数可以参考以下论文的介绍,感谢学术大佬 Santo Fortunato 的分享,如果有需求可以在 Google 站点中直接下载。
参考:
- 无向无权网络:Benchmark graphs for testing community detection algorithms
- 有向加权网络:Benchmarks for testing community detection algorithms on directed and weighted graphs with overlapping communities
- 动态网络:Benchmark model to assess community structure in evolving networks