leading.eigenvector.community(graph, steps = -1, weights = NULL,
start = NULL, options = igraph.arpack.default,
callback = NULL, extra = NULL, env = parent.frame())
community.le.to.membership(merges, steps, membership)
For community.le.to.membership
the number of merges to
produce from the supplied membership
NA
NULL
, or a numeric membership vector, giving the
start configuration of the algorithm.steps
merges are performed.NULL
, then it must be callback
function. This is called after each iteration, after calculating the
leading eigenvector of the modularity matrix. See details below.leading.eigenvector.community
.leading.eigenvector.community
returns a named list with
the following members:membership
member. This is a two-column matrix and each
line describes a merge of two communities, the first line is the
first merge and it creates community N
N
is the number of initial communities in the graph, the second line
creates community N+1
, etc.arpack
for details.community.le.to.membership
returns a named list with two
components:B
, which is B=A-P
, A
being the adjacency matrix of
the (undirected)
network, and P
contains the probability that certain edges are
present according to the P[i,j]
element of P
is the probability that
there is an edge between vertices i
and j
in a random
network in which the degrees of all vertices are the same as in the
input graph.
The leading eigenvector method works by calculating the eigenvector
of the modularity matrix for the largest positive eigenvalue and
then separating vertices into two community based on the sign of
the corresponding element in the eigenvector. If all elements in
the eigenvector are of the same sign that means that the network
has no underlying comuunity structure.
Check Newman's paper to understand why this is a good method for
detecting community structure. community.le.to.memberhip
creates a membership vector from the
result of leading.eigenvector.community
. It takes
membership
and permformes steps
merges, according to the
supplied merges
matrix.
modularity
, walktrap.community
,
edge.betweenness.community
,
fastgreedy.community
,
as.dendrogram
g <- graph.full(5) %du% graph.full(5) %du% graph.full(5)
g <- add.edges(g, c(1,6, 1,11, 6, 11))
lec <- leading.eigenvector.community(g)
lec
leading.eigenvector.community(g, start=membership(lec))
Run the code above in your browser using DataLab