用于使用 igraph C 库
igraph_error_t igraph_adjacency_spectral_embedding(const igraph_t *graph, igraph_integer_t n, const igraph_vector_t *weights, igraph_eigen_which_position_t which, igraph_bool_t scaled, igraph_matrix_t *X, igraph_matrix_t *Y, igraph_vector_t *D, const igraph_vector_t *cvec, igraph_arpack_options_t *options);
图的邻接矩阵的谱分解。此函数基于图的邻接矩阵 A 计算图的 n
维欧几里得表示。该表示通过邻接矩阵 A 的奇异值分解 A=U D V^T 计算。如果图是使用 R^n 中每个顶点的潜在位置向量生成的随机点积图,则嵌入将提供这些潜在向量的估计。
对于无向图,潜在位置计算为 X = U^n D^(1/2),其中 U^n 等于 U 的前 no 列,D^(1/2) 是一个对角矩阵,包含对角线上选定的奇异值的平方根。
对于有向图,嵌入定义为一对 X = U^n D^(1/2), Y = V^n D^(1/2)。 (对于无向图,U=V,因此只需保留其中一个。)
参数:
|
输入图,可以是定向图或无向图。 |
||||||
|
一个整数标量。此值是谱嵌入的嵌入维度。应小于顶点数。最大的 n 维非零奇异值用于谱嵌入。 |
||||||
|
可选的边权重。为无权图提供空指针。 |
||||||
|
要使用的特征值(或奇异值,对于有向图),可能的值
对于有向图, |
||||||
|
是否返回 X 和 Y(如果 |
||||||
|
初始化的矩阵,估计的潜在位置存储在此处。 |
||||||
|
初始化的矩阵或空指针。如果不是空指针,则潜在位置的后半部分存储在此处。(对于无向图,这始终等于 X。) |
||||||
|
初始化的向量或空指针。如果不是空指针,则特征值(对于无向图)或奇异值(对于有向图)存储在此处。 |
||||||
|
一个数值向量,其长度是图中的顶点数。在执行 SVD 之前,此向量被添加到邻接矩阵的对角线。 |
||||||
|
ARPACK 的选项。 有关详细信息,请参阅 |
返回值:
错误代码。 |
igraph_error_t igraph_laplacian_spectral_embedding(const igraph_t *graph, igraph_integer_t n, const igraph_vector_t *weights, igraph_eigen_which_position_t which, igraph_laplacian_spectral_embedding_type_t type, igraph_bool_t scaled, igraph_matrix_t *X, igraph_matrix_t *Y, igraph_vector_t *D, igraph_arpack_options_t *options);
此函数本质上与 igraph_adjacency_spectral_embedding
执行相同的操作,但在图的拉普拉斯矩阵上工作,而不是邻接矩阵。
参数:
|
输入图。 |
||||||
|
用于嵌入的特征向量(如果图是有向图,则为奇异向量)的数量。 |
||||||
|
可选的边权重。为无权图提供空指针。 |
||||||
|
要使用的特征值(或奇异值,对于有向图),可能的值
对于有向图, |
||||||
|
要使用的拉普拉斯矩阵的类型。 存在各种图的拉普拉斯矩阵的定义,并且可以使用此参数在它们之间进行选择。 可能的值
|
||||||
|
是否返回 X 和 Y(如果 |
||||||
|
初始化的矩阵,估计的潜在位置存储在此处。 |
||||||
|
初始化的矩阵或空指针。如果不是空指针,则潜在位置的后半部分存储在此处。(对于无向图,这始终等于 X。) |
||||||
|
初始化的向量或空指针。如果不是空指针,则特征值(对于无向图)或奇异值(对于有向图)存储在此处。 |
||||||
|
ARPACK 的选项。 有关详细信息,请参阅 |
返回值:
错误代码。 |
另请参阅:
igraph_error_t igraph_dim_select(const igraph_vector_t *sv, igraph_integer_t *dim);
使用配置文件似然选择奇异值的维度。
该函数的输入是一个数值向量,其中包含每个维度的“重要性”度量。
对于谱嵌入,这些是邻接矩阵的奇异值。 假设奇异值是从具有不同均值和相同方差的两个分量的高斯混合分布生成的。 选择维度 d 以最大化似然性,当 d 个最大的奇异值被分配给混合的一个分量,而其余的奇异值被分配给另一个分量时。
此函数也可以用于一般的分离问题,我们假设向量的左侧和右侧来自两个正态分布,具有不同的均值,并且我们想知道它们的边界。
参数:
|
一个数值向量,排序后的奇异值。 |
|
结果存储在此处。 |
返回值:
错误代码。 |
时间复杂度:O(n),n 是 sv 中的值的数量。
另请参阅:
← 第 26 章。分层随机图 | 第 28 章。图运算符 → |