如果您从 R 中使用 igraph,请使用此选项
cluster_leading_eigen {igraph} | R 文档 |
此函数尝试通过计算图的模块化矩阵的主导非负特征向量来查找图中的密集连接子图。
cluster_leading_eigen(
graph,
steps = -1,
weights = NULL,
start = NULL,
options = arpack_defaults,
callback = NULL,
extra = NULL,
env = parent.frame()
)
图 |
输入图。应为无向图,因为该方法需要对称矩阵。 |
steps |
要采取的步数,实际上是尝试进行步数的次数。 这不是一个特别有用的参数。 |
weights |
边的权重。 它必须是正数值向量, |
开始 |
|
选项 |
一个命名的列表,用于覆盖一些 ARPACK 选项。 |
callback |
如果不是 |
extra |
提供给回调函数的附加参数。 |
env |
评估回调函数的环境。 |
这些章节中记录的函数实现了 Mark Newman 开发的 “主导特征向量” 方法,请参阅下面的参考。
该方法的核心是模块化矩阵 B
的定义,即 B=A-P
,其中 A
是(无向)网络的邻接矩阵,P
包含根据 “配置模型” 存在某些边的概率。 换句话说,P[i,j]
的元素是随机网络中顶点 i
和 j
之间存在边的概率,其中所有顶点的度数与输入图中的相同。
主导特征向量方法的工作方式是计算具有最大正特征值的模块化矩阵的特征向量,然后根据特征向量中相应元素的符号将顶点分成两个社团。 如果特征向量中的所有元素都具有相同的符号,则意味着该网络没有潜在的社团结构。 查看 Newman 的论文以了解为什么这是检测社团结构的好方法。
cluster_leading_eigen
返回一个命名的列表,其中包含以下成员
membership |
算法结束时没有更多拆分可能时的成员向量。 |
merges |
从 |
选项 |
有关底层 ARPACK 计算的信息,请参阅 |
callback
参数可用于提供一个在每次特征向量计算后调用的函数。 以下参数提供给此函数
实际的成员向量,具有从零开始的索引。
算法刚刚尝试拆分的社团,社团编号从零开始。
属于算法刚刚找到的主导特征向量的特征值。
算法刚刚找到的主导特征向量。
一个 R 函数,可用于将实际的模块化矩阵乘以任意向量。 提供向量作为参数来执行此乘法。 此函数可以与 ARPACK 一起使用。
传递给 cluster_leading_eigen
的 extra
参数。
回调函数应返回一个标量数字。 如果此数字非零,则聚类终止。
Gabor Csardi csardi.gabor@gmail.com
MEJ Newman:Finding community structure using the eigenvectors of matrices, Physical Review E 74 036104, 2006。
modularity
, cluster_walktrap
, cluster_edge_betweenness
, cluster_fast_greedy
, as.dendrogram
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))
lec <- cluster_leading_eigen(g)
lec
cluster_leading_eigen(g, start=membership(lec))