sklearn.manifold.spectral_embedding

sklearn.manifold.spectral_embedding(adjacency, *, n_components=8, eigen_solver=None, random_state=None, eigen_tol=0.0, norm_laplacian=True, drop_first=True)

[源码]

将样本投影到图拉普拉斯算子的第一个特征向量上。

邻接矩阵用于计算归一化的图拉普拉斯算子,其频谱(尤其是与最小特征值相关的特征向量)具有将图分割成可比较大小的分量所需的最小割数的解释。

即使邻接变量不是严格意义上的图的邻接矩阵,而是样本之间的亲和力或相似矩阵(例如欧几里德距离矩阵或k-NN矩阵的热核),这种嵌入也可以“起作用”。

必须注意始终使亲和矩阵对称,以便特征向量按预期工作分解。

注:拉普拉斯特征映射是此处实现的实际算法。

用户指南中阅读更多内容。

参数 说明
adjacency array-like or sparse graph, shape: (n_samples, n_samples)
要嵌入的图的邻接矩阵。
n_components integer, optional, default 8
投影空间的尺寸。
eigen_solver {None, ‘arpack’, ‘lobpcg’, or ‘amg’}, default None
采用特征值分解策略。AMG要求安装pyamg。在非常大且稀疏的问题上,它可能会更快,但也可能导致不稳定。
random_state int, RandomState instance, default=None
确定solver=='amg' 时用于lobpcg特征向量分解初始化的随机数生成器。在多个函数调用之间传递int以获得可重复的结果。请参阅:term: Glossary <random_state>.
eigen_tol float, optional, default=0.0
使用arpack eigen_solver时,拉普拉斯矩阵特征分解的停止准则。
norm_laplacian bool,可选,默认为True
如果为True,则计算归一化的拉普拉斯算子。
drop_first bool,可选,默认为True
是否删除第一个特征向量。对于谱图嵌入,这应该为True,因为第一个特征向量对于连接的图应该是常数向量,但是对于谱图聚类,应该保留为False以保留第一个特征向量。
返回值 说明
embedding array, shape=(n_samples, n_components)
减少的样本。

注:

当图形具有一个相连的分量时,频谱嵌入(拉普拉斯特征图)最为有用。如果图中有很多分量,则前几个特征向量将简单地揭示图的连接分量。

参考文献

1 https://en.wikipedia.org/wiki/LOBPCG

2 Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method Andrew V. Knyazev https://doi.org/10.1137%2FS1064827500366124