譜聚類(spectral clustering)原理總結

2021-01-12 算法與數學之美
譜聚類(spectral clustering)是廣泛使用的聚類算法,比起傳統的K-Means算法,譜聚類對數據分布的適應性更強,聚類效果也很優秀,同時聚類的計算量也小很多,更加難能可貴的是實現起來也不複雜。

在處理實際的聚類問題時,個人認為譜聚類是應該首先考慮的幾種算法之一。下面我們就對譜聚類的算法原理做一個總結。

 1.1 譜聚類概述 

譜聚類是從圖論中演化出來的算法,後來在聚類中得到了廣泛的應用。它的主要思想是把所有的數據看做空間中的點,這些點之間可以用邊連接起來。距離較遠的兩個點之間的邊權重值較低,而距離較近的兩個點之間的邊權重值較高,通過對所有數據點組成的圖進行切圖,讓切圖後不同的子圖間邊權重和儘可能的低,而子圖內的邊權重和儘可能的高,從而達到聚類的目的。

乍一看,這個算法原理的確簡單,但是要完全理解這個算法的話,需要對圖論中的無向圖,線性代數和矩陣分析都有一定的了解。下面我們就從這些需要的基礎知識開始,一步步學習譜聚類。

 1.2 譜聚類基礎之一:無向權重圖 

由於譜聚類是基於圖論的,因此我們首先溫習下圖的概念。對於一個圖  ,一般用點的集合  和邊的集合  來描述。即為  。其中  即為我們數據集裡面所有的點  。對於  中的任意兩個點,可以有邊連接,也可以沒有邊連接。我們定義權重  為點  和點  之間的權重。由於我們是無向圖,所以  。

對於有邊連接的兩個點  和  ,  ,對於沒有邊連接的兩個點  和  ,  .對於圖中的任意一個點  ,它的度  定義為和它相連的所有邊的權重之和,即

利用每個點度的定義,我們可以得到一個nxn的度矩陣D,它是一個對角矩陣,只有主對角線有值,對應第i行的第i個點的度數,定義如下:

利用所有點之間的權重值,我們可以得到圖的鄰接矩陣W,它也是一個nxn的矩陣,第i行的第j個值對應我們的權重  。

除此之外,對於點集V的的一個子集A⊂V,我們定義:

 1.3 譜聚類基礎之二:相似矩陣 

在上一節我們講到了鄰接矩陣W,它是由任意兩點之間的權重值  組成的矩陣。通常我們可以自己輸入權重,但是在譜聚類中,我們只有數據點的定義,並沒有直接給出這個鄰接矩陣,那麼怎麼得到這個鄰接矩陣呢?

基本思想是,距離較遠的兩個點之間的邊權重值較低,而距離較近的兩個點之間的邊權重值較高,不過這僅僅是定性,我們需要定量的權重值。一般來說,我們可以通過樣本點距離度量的相似矩陣S來獲得鄰接矩陣W。

構建鄰接矩陣W的方法有三類。ϵ-鄰近法,K鄰近法和全連接法。

從上式可見,兩點間的權重要不就是ϵ,要不就是0,沒有其他的信息了。距離遠近度量很不精確,因此在實際應用中,我們很少使用ϵ-鄰近法。

第二種定義鄰接矩陣W的方法是K鄰近法,利用KNN算法遍歷所有的樣本點,取每個樣本最近的k個點作為近鄰,只有和樣本距離最近的k個點之間的  。但是這種方法會造成重構之後的鄰接矩陣W非對稱,我們後面的算法需要對稱鄰接矩陣。為了解決這種問題,一般採取下面兩種方法之一:

第三種定義鄰接矩陣W的方法是全連接法,相比前兩種方法,第三種方法所有的點之間的權重值都大於0,因此稱之為全連接法。

可以選擇不同的核函數來定義邊權重,常用的有多項式核函數,高斯核函數和Sigmoid核函數。最常用的是高斯核函數RBF,此時相似矩陣和鄰接矩陣相同:

在實際的應用中,使用第三種全連接法來建立鄰接矩陣是最普遍的,而在全連接法中使用高斯徑向核RBF是最普遍的。

 1.4 譜聚類基礎之三:拉普拉斯矩陣 

單獨把拉普拉斯矩陣(Graph Laplacians)拿出來介紹是因為後面的算法和這個矩陣的性質息息相關。它的定義很簡單,拉普拉斯矩陣L=D−W。D即為我們第二節講的度矩陣,它是一個對角矩陣。而W即為我們第二節講的鄰接矩陣,它可以由我們第三節的方法構建出。

拉普拉斯矩陣有一些很好的性質如下:

 1.5 譜聚類基礎之四:無向圖切圖 

對於無向圖G的切圖,我們的目標是將圖G(V,E)切成相互沒有連接的k個子圖,每個子圖點的集合為:

那麼如何切圖可以讓子圖內的點權重和高,子圖間的點權重和低呢?

一個自然的想法就是最小化  ,但是可以發現,這種極小化的切圖存在問題,如下圖:

我們選擇一個權重最小的邊緣的點,比如C和H之間進行cut,這樣可以最小化  ,但是卻不是最優的切圖,如何避免這種切圖,並且找到類似圖中"Best Cut"這樣的最優切圖呢?我們下一節就來看看譜聚類使用的切圖方法。

 1.6 譜聚類之切圖聚類 

為了避免最小切圖導致的切圖效果不佳,我們需要對每個子圖的規模做出限定,一般來說,有兩種切圖方式,第一種是RatioCut,第二種是Ncut。下面我們分別加以介紹。

1.6.1 RatioCut切圖

RatioCut切圖為了避免第五節的最小切圖,對每個切圖,不光考慮最小化  ,它還同時考慮最大化每個子圖點的個數,即:

那麼怎麼最小化這個RatioCut函數呢?牛人們發現,RatioCut函數可以通過如下方式表示。

注意到  矩陣裡面的每一個指示向量都是n維的,向量中每個變量的取值為0或者  ,就有  種取值,有k個子圖的話就有k個指示向量,共有  種  ,因此找到滿足上面優化目標的H是一個NP難的問題。那麼是不是就沒有辦法了呢?

注意觀察  中每一個優化子目標  ,其中  是單位正交基,  是對稱矩陣,此時  的最大值為  的最大特徵值,最小值是  的最小特徵值。如果你對主成分分析PCA很熟悉的話,這裡很好理解。在PCA中,我們的目標是找到協方差矩陣(對應此處的拉普拉斯矩陣L)的最大的特徵值,而在我們的譜聚類中,我們的目標是找到目標的最小的特徵值,得到對應的特徵向量,此時對應二分切圖效果最佳。也就是說,我們這裡要用到維度規約的思想來近似去解決這個NP難的問題。

對於  ,目標是找到最小的  的特徵值,而對於  ,則我們的目標就是找到k個最小的特徵值,一般來說,k遠遠小於n,也就是說,此時我們進行了維度規約,將維度從n降到了k,從而近似可以解決這個NP難的問題。

通過找到L的最小的k個特徵值,可以得到對應的k個特徵向量,這k個特徵向量組成一個nxk維度的矩陣,即為我們的H。一般需要對H裡的每一個特徵向量做標準化,即

由於我們在使用維度規約的時候損失了少量信息,導致得到的優化後的指示向量h對應的H現在不能完全指示各樣本的歸屬,因此一般在得到nxk維度的矩陣H後還需要對每一行進行一次傳統的聚類,比如使用K-Means聚類.

1.6.2 Ncut切圖

Ncut切圖和RatioCut切圖很類似,但是把Ratiocut的分母  換成  。由於子圖樣本的個數多並不一定權重就大,我們切圖時基於權重也更合我們的目標,因此一般來說Ncut切圖優於RatioCut切圖。

那麼對於  有:

推導方式和RatioCut完全一致。也就是說,我們的優化目標仍然是

此時我們的H中的指示向量h並不是標準正交基,所以在RatioCut裡面的降維思想不能直接用。怎麼辦呢?其實只需要將指示向量矩陣H做一個小小的轉化即可。

 1.7 譜聚類算法流程 

一般來說,譜聚類主要的注意點為相似矩陣的生成方式(參見第二節),切圖的方式(參見第六節)以及最後的聚類方法(參見第六節)。

最常用的相似矩陣的生成方式是基於高斯核距離的全連接方式,最常用的切圖方式是Ncut。而到最後常用的聚類方法為K-Means。下面以Ncut總結譜聚類算法流程。

 1.8 譜聚類算法總結 

譜聚類算法是一個使用起來簡單,但是講清楚卻不是那麼容易的算法,它需要你有一定的數學基礎。如果你掌握了譜聚類,相信你會對矩陣分析,圖論有更深入的理解。同時對降維裡的主成分分析也會加深理解。

下面總結下譜聚類算法的優缺點。

譜聚類算法的主要優點有:

1)譜聚類只需要數據之間的相似度矩陣,因此對於處理稀疏數據的聚類很有效。這點傳統聚類算法比如K-Means很難做到。

2)由於使用了降維,因此在處理高維數據聚類時的複雜度比傳統聚類算法好。

譜聚類算法的主要缺點有:

1)如果最終聚類的維度非常高,則由於降維的幅度不夠,譜聚類的運行速度和最後的聚類效果均不好。

2) 聚類效果依賴於相似矩陣,不同的相似矩陣得到的最終聚類效果可能很不同。

—THE END—

相關焦點

  • 代碼分析 | 單細胞轉錄組clustering詳解
    Scater單細胞表達譜tSNE可視化),不過非線性可視化方法(例如t-SNE)通常會擾亂數據中的全局結構。芬蘭CSC-IT科學中心主講的生物信息課程(https://www.csc.fi/web/training/-/scrnaseq)視頻,官網上還提供了練習素材以及詳細代碼,今天就來練習一下單細胞數據clustering的過程。在本教程中,我們將研究不同的聚類scRNA-seq數據集方法以表徵不同的細胞亞群。
  • 聚類算法 Hierarchical Clustering算法
    Hierarchical Clustering算法概述HC算法,又稱層次聚類算法,就是按照某種方法進行層次分類,直到滿足某種條件為止。簡單說它是將數據集中的每個樣本初始化為一個簇,然後找到距離最近的兩個簇,將他們合併,不斷重複這個過程,直達到到預設的聚類數目為止。
  • 評分卡建模工具之變量聚類
    文 | 光大科技大數據部 李琨1 評分卡建模中的變量聚類與變量選擇2 變量聚類VARCLUS模塊使用的聚類算法詳解2.1 cluster component怎麼取?4 總結1 評分卡建模中的變量聚類與變量選擇基於邏輯回歸的評分卡建模是金融業中最常見的建模方案之一,由於良好的業務可解釋性,在風控、運營和營銷等業務場景中都有廣泛應用。
  • 「Workshop」第十期:聚類
    ❝本期由吳濤師弟講解聚類,內容很詳實,推薦感興趣的讀者通過原文連結觀看介紹視頻。(Partitioning clustering)劃分聚類需要我們指定類別的數量最常用的有:K-medoids clustering (PAM)K均值聚類k表示我們想要數據聚成的類數,最終的結果是實現高的類內相似性和低的類間相似性
  • 「R」層次聚類和非層次聚類
    ❝原英文連結:https://www.rpubs.com/dvallslanaquera/clustering[1]❞層次聚類 (HC)在這個分析中,我們將看到如何創建層次聚類模型。目的是探索資料庫中是否存在相似性組,並查看它們的行為。
  • 人人都能讀懂的無監督學習:什麼是聚類和降維?
    我們將在這裡探索的兩種無監督學習任務是:1)將數據按相似度聚類(clustering)成不同的分組;2)降維(reducing dimensionality),以便在保留數據結構和有用性的同時對數據進行壓縮。
  • 回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R...
    雖然類似的總結有很多,但是它們都沒有真正解釋清楚每個算法在實踐中的好壞,而這正是本篇梳理希望完成的。因此本文力圖基於實踐中的經驗,討論每個算法的優缺點。而機器之心也在文末給出了這些算法的具體實現細節。對機器學習算法進行分類不是一件容易的事情,總的來看,有如下幾種方式:生成與判別、參數與非參數、監督與非監督等等。
  • ItClust:單細胞RNA測序分析的聚類和細胞類型分類算法
    單細胞RNA測序技術(scRNA-seq)為細胞生物學和疾病原理研究提供了一個新的方法結果表明,在聚類和細胞類型分類中,ItClust的性能始終優於這些現有方法。由於篇幅所限, 在此僅僅展示一部分結果。
  • ...基於系統聚類-加權馬爾科夫耦合模型滑坡預警 方法研究與應用...
    針對現有滑坡預警理論與方法仍存在的可信度較低、錯誤率高及預警不及時等問題,基於馬爾科夫鏈理論和系統聚類基本思想,視滑坡過程中的位移速度演變為馬爾科夫過程,運用聚類分析將GPS 速度觀測信號轉換為狀態信號,從隨機過程角度對滑坡位移加速度a>0 這一滑坡判據進行了新的描述。
  • 你需要的最全面的K-means聚類指南
    這就是聚類概念在數據科學中如此重要的原因。聚類有助於我們以獨特的方式理解我們的數據 - 通過將事物分組。在本文中,我們將全面介紹K-means聚類及其擴展。我們將研究聚類,它為什麼重要,它的應用,然後深入研究K-means聚類(包括如何在真實數據集上用Python實現它)。2. 什麼是聚類?讓我們用一個簡單的例子來解決問題。
  • 論文推薦|基於系統聚類-加權馬爾科夫耦合模型滑坡預警 方法研究與...
    針對現有滑坡預警理論與方法仍存在的可信度較低、錯誤率高及預警不及時等問題,基於馬爾科夫鏈理論和系統聚類基本思想,視滑坡過程中的位移速度演變為馬爾科夫過程,運用聚類分析將GPS 速度觀測信號轉換為狀態信號,從隨機過程角度對滑坡位移加速度a>0 這一滑坡判據進行了新的描述。
  • 2017.05:基於函數型數據聚類的京津冀空氣汙染特徵分析(梁銀雙等)
    近些年,函數型數據的聚類方法也逐漸成熟[15-19],主要分為三類:降維之後使用傳統方法聚類(如K-均值、系統聚類等);採用特殊距離或曲線差異的非參數方法;基於模型的聚類方法。k-均值聚類,最後利用ArcGIS9.3將京津冀地區空氣汙染的聚類結果在地圖上直觀實現。
  • 有了K均值聚類,為什麼還需要DBSCAN聚類算法?
    K均值(點之間的距離)、Affinity propagation(圖之間的距離)、均值漂移(點之間的距離)、DBSCAN(最近點之間的距離)、高斯混合(到中心的馬氏距離)、譜聚類(圖之間距離)等。2014年,DBSCAN算法在領先的數據挖掘會議ACM SIGKDD上獲得the testof time獎(授予在理論和實踐中受到廣泛關注的算法)。
  • 集成聚類系列(三)圖聚類算法詳解
    圖聚類算法研究現狀聚類分析是一種常用的機器學習技術,它的目的是將一個數據點劃分為幾個類。同一個類的數據之間具有較高的相似性,不同的類之間的相似度較低。很多研究已表明圖聚類是一種極具競爭力的聚類算法,圖聚類是一種基於圖劃分理論的算法。與其他聚類算法相比,圖聚類算法有些明顯的優勢。
  • 簡潔詳盡講解文本聚類
    起初,用於單詞和文檔的聚類的大量方法似乎不勝枚舉,讓我們仔細研究其中幾種。本文涵蓋的主題包括k均值,布朗聚類,tf-idf聚類,主題模型和潛在的Dirichlet分配(也稱為LDA)。聚類是數據科學中最大的主題之一,其規模如此之大,以至於你很容易會發現有大量書籍正探討它的每一個細節。文本聚類的子主題也不例外。
  • python之kmeans數據聚類算法
    一 Kmeans原理kmeans是屬於無監督學習的數據聚類算法,根據點與點之間的距離推測每個點屬於哪個中心,常用計算距離的方式有:餘弦距離、歐式距離、曼哈頓距離等,本文以歐式距離為例。圖1假設每個點的維度是n,即每個點有n個特徵維度,計算這些點數據到數據中心A、B、C的距離,從而將每個數據歸類到A或B或C。
  • ...分享:超高解析度光學相干斷層掃描(UHR-OCT)與SuperK超連續譜光源
    OCT成像原理是20世紀90年代逐步發展而成的一種新的三維層析成像技術。在過去的20多年中,OCT已發展成為眼科學中必不可少的成像工具,尤其是對視網膜和周圍組織的詳細分析。當然OCT的應用也不僅局限於眼科學,在眼科領域之外,人們也用OCT進行了越來越多的研究。
  • 雲平臺|OTU聚類的幾種算法!
    今天給大家介紹雲平臺|OTU聚類的幾種算法!講述微生物多樣分析背後的上帝之手!為何要進行聚類?UPARSE經典的Uprase就是通過序列之間的相似度97%為閾值進行聚類:圖2 Uprase原理UNOISE圖中X為一天最高豐度序列,周圍存在很多低豐度序列。