譜聚類概念 :
譜聚類是壹種基於圖論的聚類方法,通過對樣本數據的拉普拉斯矩陣的特征向量進行聚類,從而達到對樣本數據聚類的母的。譜聚類可以理解為將高維空間的數據映射到低維,然後在低維空間用其它聚類算法(如KMeans)進行聚類。
算法步驟
1 計算相似度矩陣 W
2 計算度矩陣 D
3 計算拉普拉斯矩陣L=D-W
4 計算L的特征值,將特征值從小到大排序,取前k個特征值.將這個特征值向量轉換為矩陣
5 通過其他聚類算法對其進行聚類,如k-means
詳細公式和概念請到 大佬博客
相比較PCA降維中取前k大的特征值對應的特征向量,這裏取得是前k小的特征值對應的特征向量。但是上述的譜聚類算法並不是最優的,接下來我們壹步壹步的分解上面的步驟,總結壹下在此基礎上進行優化的譜聚類的版本。
python實現
例子壹:使用譜聚類從噪聲背景中分割目標
效果圖
例子2:分割圖像中硬幣的區域
效果圖
註意
1)當聚類的類別個數較小的時候,譜聚類的效果會很好,但是當聚類的類別個數較大的時候,則不建議使用譜聚類;
(2)譜聚類算法使用了降維的技術,所以更加適用於高維數據的聚類;
(3)譜聚類只需要數據之間的相似度矩陣,因此對於處理稀疏數據的聚類很有效。這點傳統聚類算法(比如K-Means)很難做到
(4)譜聚類算法建立在譜圖理論基礎上,與傳統的聚類算法相比,它具有能在任意形狀的樣本空間上聚類且收斂於全局最優解
(5)譜聚類對相似度圖的改變和聚類參數的選擇非常的敏感;
(6)譜聚類適用於均衡分類問題,即各簇之間點的個數相差不大,對於簇之間點個數相差懸殊的聚類問題,譜聚類則不適用;
參考
譜聚類算法介紹
sklearn官網