如果您从 R 中使用 igraph,请使用此选项
embed_adjacency_matrix {igraph} | R 文档 |
图的邻接矩阵的谱分解。
embed_adjacency_matrix(
graph,
no,
weights = NULL,
which = c("lm", "la", "sa"),
scaled = TRUE,
cvec = graph.strength(graph, weights = weights)/(vcount(graph) - 1),
options = igraph.arpack.default
)
图 |
输入图,有向或无向。 |
否 |
一个整数标量。此值是谱嵌入的嵌入维度。应小于顶点数。最大的 |
权重 |
用于计算加权嵌入的可选正权重向量。如果图具有 |
哪个 |
要使用哪个特征值(或奇异值,对于有向图)。“lm”表示具有最大幅度的特征值,“la”是(代数)最大的特征值,“sa”是(代数)最小的特征值。默认值为“lm”。请注意,对于有向图,“la”和“lm”是等效的,因为奇异值用于排序。 |
缩放 |
逻辑标量,如果 |
cvec |
一个数值向量,其长度是图中顶点的数量。此向量被添加到邻接矩阵的对角线。 |
选项 |
一个命名列表,包含 ARPACK 中 SVD 计算算法的参数。默认情况下,值列表分配由 |
此函数基于其邻接矩阵 A
计算图的 no
维欧几里得表示。此表示通过邻接矩阵的奇异值分解 A=UDV^T
计算。在图中,如果该图是使用 R^{no}
中每个顶点的潜在位置向量生成的随机点积图,则嵌入将提供这些潜在向量的估计。
对于无向图,潜在位置计算为 X=U^{no}D^{1/2}
,其中 U^{no}
等于 U
的前 no
列,D^{1/2}
是一个对角矩阵,其对角线上包含前 no
个奇异值。
对于有向图,嵌入定义为对 X=U^{no}D^{1/2}
和 Y=V^{no}D^{1/2}
。(对于无向图,U=V
,因此保留其中一个就足够了。)
一个包含以下条目的列表
X |
估计的潜在位置,一个 |
Y |
无向图为 |
D |
算法计算出的特征值(对于无向图)或奇异值(对于有向图)。 |
选项 |
一个命名列表,有关底层 ARPACK 计算的信息。有关详细信息,请参见 |
Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. A Consistent Adjacency Spectral Embedding for Stochastic Blockmodel Graphs, Journal of the American Statistical Association, Vol. 107(499), 2012
## A small graph
lpvs <- matrix(rnorm(200), 20, 10)
lpvs <- apply(lpvs, 2, function(x) { return (abs(x)/sqrt(sum(x^2))) })
RDP <- sample_dot_product(lpvs)
embed <- embed_adjacency_matrix(RDP, 5)