Lancichinetti–Fortunato–Radicchi benchmark is an algorithm that generates benchmark networks (artificial networks that resemble real-world networks). They have a priori known communities and are used to compare different community detection methods.[1] The advantage of the benchmark over other methods is that it accounts for the heterogeneity in the distributions of node degrees and of community sizes.[2]
The node degrees and the community sizes are distributed according to a power law, with different exponents. The benchmark assumes that both the degree and the community size have power law distributions with different exponents,
\gamma
\beta
N
\langlek\rangle
\mu
\mu=0
\mu=1
One can generate the benchmark network using the following steps.
Step 1: Generate a network with nodes following a power law distribution with exponent
\gamma
kmin
kmax
\langlek\rangle
Step 2:
(1-\mu)
\mu
Step 3: Generate community sizes from a power law distribution with exponent
\beta
N
smin
smax
smin>kmin
smax>kmax
Step 4: Initially, no nodes are assigned to communities. Then, each node is randomly assigned to a community. As long as the number of neighboring nodes within the community does not exceed the community size a new node is added to the community, otherwise stays out. In the following iterations the “homeless” node is randomly assigned to some community. If that community is complete, i.e. the size is exhausted, a randomly selected node of that community must be unlinked. Stop the iteration when all the communities are complete and all the nodes belong to at least one community.
Step 5: Implement rewiring of nodes keeping the same node degrees but only affecting the fraction of internal and external links such that the number of links outside the community for each node is approximately equal to the mixing parameter
\mu
Consider a partition into communities that do not overlap. The communities of randomly chosen nodes in each iteration follow a
p(C)
C
p(C2)
p(C1)
p(C1,C2)
In=
| ||||||||||
|
)+
1 | |
2 |
H(\{p(C2)\})}
If
In=1
In=0