| community_consensus | R Documentation |
Runs a stochastic community detection algorithm multiple times and finds consensus communities via co-occurrence matrix thresholding. This approach produces more robust and stable community assignments than single runs.
community_consensus(
x,
method = c("louvain", "leiden", "infomap", "label_propagation", "spinglass"),
n_runs = 100,
threshold = 0.5,
seed = NULL,
...
)
com_consensus(
x,
method = c("louvain", "leiden", "infomap", "label_propagation", "spinglass"),
n_runs = 100,
threshold = 0.5,
seed = NULL,
...
)
x |
Network input: matrix, igraph, network, cograph_network, or tna object |
method |
Community detection algorithm to use. Default "louvain". Must be a stochastic method (louvain, leiden, infomap, label_propagation, spinglass). |
n_runs |
Number of times to run the algorithm. Default 100. |
threshold |
Co-occurrence threshold for consensus. Default 0.5. Nodes that appear together in >= threshold proportion of runs are placed in the same community. |
seed |
Optional seed for reproducibility. If provided, seeds for individual runs are derived from this seed. |
... |
Additional arguments passed to the community detection method. |
The algorithm works as follows:
Run the specified algorithm n_runs times (without seeds to
allow variation)
Build a co-occurrence matrix counting how often each pair of nodes appears in the same community
Normalize to proportions (0-1)
Threshold to create a consensus graph (edge if co-occurrence >= threshold)
Run walktrap on the consensus graph to get final communities
A cograph_communities object with consensus membership.
Lancichinetti, A., & Fortunato, S. (2012). Consensus clustering in complex networks. Scientific Reports, 2, 336.
communities, community_louvain
if (requireNamespace("igraph", quietly = TRUE)) {
g <- igraph::make_graph("Zachary")
# Consensus from 50 Louvain runs
cc <- community_consensus(g, method = "louvain", n_runs = 50)
print(cc)
# Stricter threshold for more robust communities
cc2 <- community_consensus(g, threshold = 0.7, n_runs = 100)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.