图的邻接矩阵的谱分解。
用法
embed_adjacency_matrix(
graph,
no,
weights = NULL,
which = c("lm", "la", "sa"),
scaled = TRUE,
cvec = strength(graph, weights = weights)/(vcount(graph) - 1),
options = arpack_defaults()
)
参数
- graph
输入图,有向或无向。
- no
一个整数标量。此值是谱嵌入的嵌入维度。应小于顶点数。最大的
no
维非零奇异值用于谱嵌入。- weights
用于计算加权嵌入的可选正权重向量。如果图具有
weight
边属性,则默认使用此属性。在加权嵌入中,使用边权重代替二元邻接矩阵。- which
要使用的特征值(或奇异值,对于有向图)。“lm”表示具有最大幅度的特征值,“la”是(代数)最大的特征值,“sa”是(代数)最小的特征值。默认值为“lm”。请注意,对于有向图,“la”和“lm”是等效的,因为奇异值用于排序。
- scaled
逻辑标量,如果为
FALSE
,则返回 \(U\) 和 \(V\) 而不是 \(X\) 和 \(Y\)。- cvec
一个数值向量,其长度是图中的顶点数。该向量被添加到邻接矩阵的对角线。
- options
一个命名列表,包含 ARPACK 中 SVD 计算算法的参数。默认情况下,值列表被分配给
arpack_defaults()
给出的值。
值
包含条目的列表
- X
估计的潜在位置,一个
n
乘以no
的矩阵,n
是顶点数。- Y
对于无向图为
NULL
,对于有向图为潜在位置的后半部分,一个n
乘以no
的矩阵,n
是顶点数。- D
该算法计算的特征值(对于无向图)或奇异值(对于有向图)。
- options
一个命名列表,包含有关底层 ARPACK 计算的信息。有关详细信息,请参见
arpack()
。
详细信息
此函数基于其邻接矩阵 \(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\),因此保留其中一个就足够了。)
参考文献
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
参见
其他嵌入: dim_select()
, embed_laplacian_matrix()