當前位置:編程學習大全網 - 源碼下載 - 譜聚類(Spectral clustering)(python實現)

譜聚類(Spectral clustering)(python實現)

譜聚類概念

譜聚類是壹種基於圖論的聚類方法,通過對樣本數據的拉普拉斯矩陣的特征向量進行聚類,從而達到對樣本數據聚類的母的。譜聚類可以理解為將高維空間的數據映射到低維,然後在低維空間用其它聚類算法(如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官網

  • 上一篇:記事本程序設置字體顏色。
  • 下一篇:壹部電影叫什麽名字
  • copyright 2024編程學習大全網