改进LFR生成符号网络

改进LFR生成符号网络

在这里插入图片描述
对每个节点连到外面的边,强制将按一定比例将其改成负值。

这还有个例子,比如0.6的外联比例,0.25的负外联比例。就可以制造每个节点的内联概率为40%,外联但是正边的概率35%,外联负边概率25%

在这里插入图片描述

FR的生成代码里加一个概率参数,随机改变每个点的一些外联边为负就可以啦

LFR 原始论文 PDF 地址:

Benchmark graphs for testing community detection algorithms

https://sites.google.com/site/santofortunato/benchmark.pdf?attredirects=0

Benchmarks for testing community detection algorithms on directed and weighted

graphs with overlapping communities

https://sites.google.com/site/santofortunato/newbenchmarks.pdf?attredirects=0

源程序在 Santo Fortunat 的网站上可以找到:

https://sites.google.com/site/santofortunato/inthepress2
参考文献:https://www.nature.com/articles/srep14339/
LFR简单入门:https://blog.csdn.net/u011089523/article/details/76589065

生成LFR网络之前,需要安装networkx和numpy等必要的库。然后,可以按照以下步骤生成LFR网络: 1. 导入库和模块: ```python import networkx as nx import numpy as np ``` 2. 设置参数: ```python N = 1000 # 网络节点数 tau1 = 3 # 度分布幂律指数 tau2 = 1.5 # 社区内部节点度分布幂律指数 mu = 0.1 # 边交叉概率 average_degree = 20 # 平均度数 ``` 3. 生成LFR网络: ```python def generate_LFR_graph(N, tau1, tau2, mu, average_degree): # 生成社区大小的分布 community_sizes = nx.utils.powerlaw_sequence( N, exponent=tau1, seed=42) # 生成社区内部节点度分布 in_degree_sequence = np.concatenate([ nx.utils.powerlaw_sequence( size, exponent=tau2, seed=42) for size in community_sizes]) # 生成社区间节点度分布 out_degree_sequence = np.array( [average_degree] * N) - np.array(in_degree_sequence) # 去除负度数 out_degree_sequence[out_degree_sequence < 0] = 0 # 生成LFR网络 graph = nx.LFR_benchmark_graph( n=N, tau1=tau1, tau2=tau2, mu=mu, average_degree=average_degree, max_degree=int(1.5 * average_degree), min_community=10, seed=42, # 以下参数用于确定社区大小分布 min_degree=1, # 最小度数 on_powerlaw=True, # 开启幂律分布 overlap=False, # 是否允许社区重叠 # 以下参数用于确定社区内部节点度分布 in_degree_sequence=in_degree_sequence, # 以下参数用于确定社区间节点度分布 out_degree_sequence=out_degree_sequence) return graph ``` 4. 调用函数生成LFR网络: ```python graph = generate_LFR_graph(N, tau1, tau2, mu, average_degree) ``` 这样就可以生成一个符合LFR网络特征的图了。可以使用networkx的其他函数对其进行分析和可视化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头队长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值