跳到内容

图的拉普拉斯矩阵的谱分解。

用法

embed_laplacian_matrix(
  graph,
  no,
  weights = NULL,
  which = c("lm", "la", "sa"),
  type = c("default", "D-A", "DAD", "I-DAD", "OAP"),
  scaled = TRUE,
  options = arpack_defaults()
)

参数

graph

输入图,有向或无向。

no

一个整数标量。此值为谱嵌入的嵌入维度。应小于顶点数。最大的 no 维非零奇异值用于谱嵌入。

weights

用于计算加权嵌入的可选正权重向量。如果图具有 weight 边属性,则默认使用此属性。对于加权嵌入,使用边权重而不是二进制邻接矩阵,并且顶点强度(参见 strength())代替度。

which

要使用的特征值(或对于有向图,奇异值)。 “lm”表示幅度最大的特征值,“la”是(代数)最大的特征值,“sa”是(代数)最小的特征值。 默认为“lm”。 请注意,对于有向图,“la”和“lm”是等效的,因为奇异值用于排序。

type

要使用的拉普拉斯算子的类型。 图的拉普拉斯算子存在各种定义,可以通过此参数在它们之间进行选择。

可能的值:D-A 表示 \(D-A\),其中 \(D\) 是度矩阵,\(A\) 是邻接矩阵; DAD 表示 \(D^{1/2}\) 乘以 \(A\) 乘以 \(D^{1/2}\),\(D^{1/2}\) 是度矩阵的平方根的逆矩阵; I-DAD 表示 \(I-D^{1/2}\),其中 \(I\) 是单位矩阵。 OAP 是 \(O^{1/2}AP^{1/2}\),其中 \(O^{1/2}\) 是出度矩阵的平方根的逆矩阵,\(P^{1/2}\) 对入度矩阵相同。

OAP 未为无向图定义,并且是有向图的唯一定义类型。

默认值(即类型 default)是对无向图使用 D-A,对有向图使用 OAP

scaled

逻辑标量,如果 FALSE,则返回 \(U\) 和 \(V\) 而不是 \(X\) 和 \(Y\)。

options

一个命名的列表,其中包含 ARPACK 中 SVD 计算算法的参数。 默认情况下,值的列表被分配给由 arpack_defaults() 给出的值。

包含以下条目的列表

X

估计的潜在位置,一个 n 乘以 no 矩阵,n 是顶点数。

Y

无向图为 NULL,有向图的潜在位置的后半部分,一个 n 乘以 no 矩阵,n 是顶点数。

D

算法计算的特征值(对于无向图)或奇异值(对于有向图)。

options

一个命名列表,包含有关底层 ARPACK 计算的信息。有关详细信息,请参见 arpack()

详细信息

此函数基于图的拉普拉斯矩阵 \(L\) 计算图的 no 维欧几里得表示。 此表示是通过拉普拉斯矩阵的奇异值分解计算的。

它们本质上与 embed_adjacency_matrix() 做的事情相同,但在拉普拉斯矩阵而不是邻接矩阵上工作。

参考文献

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

作者

Gabor Csardi csardi.gabor@gmail.com

laplacian_spectral_embedding().

示例


## 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_laplacian_matrix(RDP, 5)