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