This function tries to find densely connected subgraphs, also called communities in a graph via random walks. The idea is that short random walks tend to stay in the same community.
Usage
cluster_walktrap(
graph,
weights = NULL,
steps = 4,
merges = TRUE,
modularity = TRUE,
membership = TRUE
)
Arguments
- graph
The input graph, edge directions are ignored in directed graphs.
- weights
The weights of the edges. It must be a positive numeric vector,
NULL
orNA
. If it isNULL
and the input graph has a ‘weight’ edge attribute, then that attribute will be used. IfNULL
and no such attribute is present, then the edges will have equal weights. Set this toNA
if the graph was a ‘weight’ edge attribute, but you don't want to use it for community detection. Larger edge weights increase the probability that an edge is selected by the random walker. In other words, larger edge weights correspond to stronger connections.- steps
The length of the random walks to perform.
- merges
Logical scalar, whether to include the merge matrix in the result.
- modularity
Logical scalar, whether to include the vector of the modularity scores in the result. If the
membership
argument is true, then it will always be calculated.- membership
Logical scalar, whether to calculate the membership vector for the split corresponding to the highest modularity value.
Value
cluster_walktrap()
returns a communities()
object, please see the communities()
manual page for details.
Details
This function is the implementation of the Walktrap community finding algorithm, see Pascal Pons, Matthieu Latapy: Computing communities in large networks using random walks, https://arxiv.org/abs/physics/0512106
References
Pascal Pons, Matthieu Latapy: Computing communities in large networks using random walks, https://arxiv.org/abs/physics/0512106
See also
See communities()
on getting the actual membership
vector, merge matrix, modularity score, etc.
modularity()
and cluster_fast_greedy()
,
cluster_spinglass()
,
cluster_leading_eigen()
,
cluster_edge_betweenness()
, cluster_louvain()
,
and cluster_leiden()
for other community detection
methods.
Community detection
as_membership()
,
cluster_edge_betweenness()
,
cluster_fast_greedy()
,
cluster_fluid_communities()
,
cluster_infomap()
,
cluster_label_prop()
,
cluster_leading_eigen()
,
cluster_leiden()
,
cluster_louvain()
,
cluster_optimal()
,
cluster_spinglass()
,
compare()
,
groups()
,
make_clusters()
,
membership()
,
modularity.igraph()
,
plot_dendrogram()
,
split_join_distance()
,
voronoi_cells()
Author
Pascal Pons (http://psl.pons.free.fr/) and Gabor Csardi csardi.gabor@gmail.com for the R and igraph interface
Examples
g <- 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_walktrap(g)
#> IGRAPH clustering walktrap, groups: 3, mod: 0.58
#> + groups:
#> $`1`
#> [1] 11 12 13 14 15
#>
#> $`2`
#> [1] 6 7 8 9 10
#>
#> $`3`
#> [1] 1 2 3 4 5
#>