cluster_louvain: Finding community structure by multi-level optimization of modularity
Description
This function implements the multi-level modularity optimization algorithm
for finding community structure, see references below. It is based on the
modularity measure and a hierarchial approach.
Usage
cluster_louvain(graph, weights = NULL)
Arguments
graph
The input graph.
weights
Optional positive weight vector. If the graph has a
weight edge attribute, then this is used by default. Supply NA
here if the graph has a weight edge attribute, but you want to ignore
it.
Value
cluster_louvain returns a communities
object, please see the communities manual page for details.
Details
This function implements the multi-level modularity optimization algorithm
for finding community structure, see VD Blondel, J-L Guillaume, R Lambiotte
and E Lefebvre: Fast unfolding of community hierarchies in large networks,
http://arxiv.org/abs/arXiv:0803.0476 for the details.
It is based on the modularity measure and a hierarchial approach.
Initially, each vertex is assigned to a community on its own. In every step,
vertices are re-assigned to communities in a local, greedy way: each vertex
is moved to the community with which it achieves the highest contribution to
modularity. When no vertices can be reassigned, each community is considered
a vertex on its own, and the process starts again with the merged
communities. The process stops when there is only a single vertex left or
when the modularity cannot be increased any more in a step.
This function was contributed by Tom Gregorovic.
References
Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte,
Etienne Lefebvre: Fast unfolding of communities in large networks. J. Stat.
Mech. (2008) P10008
See Also
See communities for extracting the membership,
modularity scores, etc. from the results.
# This is so simple that we will have only one levelg <- make_full_graph(5) %du% make_full_graph(5) %du% make_full_graph(5)
g <- add_edges(g, c(1,6, 1,11, 6, 11))
cluster_louvain(g)