sklearn.cluster.spectral_clustering?
sklearn.cluster.spectral_clustering(affinity, *, n_clusters=8, n_components=None, eigen_solver=None, random_state=None, n_init=10, eigen_tol=0.0, assign_labels='kmeans')
將聚類應用于歸一化Laplacian的投影。
在實際應用中,光譜聚類是非常有用的,當單個簇的結構是高度非凸的,或者更普遍地說,當簇的中心和擴展的度量并不適合描述完整的聚類時,光譜聚類是非常有用的。例如,當簇是二維平面上的嵌套圓時。
如果親和度是圖的鄰接矩陣,則該方法可用于求圖的歸一化割集。
在用戶指南中閱讀更多內容。
參數 | 說明 |
---|---|
affinity | array-like or sparse matrix, shape: (n_samples, n_samples) 描述嵌入樣本之間關系的親和矩陣。必須是對稱的 可能的例子: - 圖的鄰接矩陣 - 樣本成對距離矩陣的熱核 - 樣本的對稱k近鄰連通矩陣 |
n_clusters | integer, optional 要提取的聚類數 |
n_components | integer, optional, default=n_clusters 用于光譜嵌入的特征向量數 |
eigen_solver | {None, ‘arpack’, ‘lobpcg’, or ‘amg’} 特征值分解策略的應用。AMG需要安裝pyamg。它可以在非常大的稀疏問題上更快,但也可能導致不穩定。 |
random_state | int, RandomState instance, default=None 一種用于Lobpcg特征向量分解初始化的偽隨機數發生器,當 eigen_solver='amg' , 通過K-Means初始化。使用int使隨機性確定性。見Glossary。 |
n_init | int, optional, default: 10 k均值算法將使用不同的質心種子運行次數。最后的結果將是n_init連續運行的最佳inertia輸出。 |
eigen_tol | float, optional, default: 0.0 Laplacian矩陣特征點的停止準則, 當 eigen_solver='arpack' 。 |
assign_labels | {‘kmeans’, ‘discretize’}, default: ‘kmeans’ 在嵌入空間中分配標簽的策略。在Laplacian嵌入之后,有兩種分配標簽的方法。k-means可以應用,是一種很受歡迎的選擇。但是它對初始化也很敏感。離散化是另一種對隨機初始化不那么敏感的方法。有關離散化方法的更多細節,請參見下文引用的‘Multiclass spectral clustering’論文。 |
注意
圖表應該只包含一個連接組件,其他地方的結果沒有什么意義。
該算法解決了k=2的歸一化割集問題:它是一種歸一化光譜聚類。
參考
Normalized cuts and image segmentation, 2000 Jianbo Shi, Jitendra Malikhttp://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.160.2324
A Tutorial on Spectral Clustering, 2007 Ulrike von Luxburghttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.9323
Multiclass spectral clustering, 2003 Stella X. Yu, Jianbo Shihttps://www1.icsi.berkeley.edu/~stellayu/publication/doc/2003kwayICCV.pdf