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