上文咱們引入了是聚類,並介紹了第一種聚類算法K-means。今天,咱們來介紹一種流行的聚類算法——譜聚類(Spectral Clustering),它的實現簡單,並且效果每每好於傳統的聚類算法,如k-means,可是其背後的原理涉及了不少重要而複雜的知識,如圖論,矩陣分析等。別擔憂,今天小編就帶你一舉攻克這些難關,拿下譜聚類算法。算法
Q:什麼是譜聚類?函數
A:譜聚類是最流行的聚類算法之一,它的實現簡單,並且效果每每賽過傳統的聚類算法,如K-means。它的主要思想是把全部數據看做空間中的點,這些點之間用帶權重的邊相連,距離較遠的點之間的邊權重較低,距離較近的點之間邊權重較高,經過對全部數據點和邊組成的圖進行切圖,讓切圖後不一樣子圖間邊權重和儘量低,而子圖內邊權重和儘量高來達到聚類的目的。工具
接下來咱們先介紹圖的基礎知識以及圖拉普拉斯,而後引入譜聚類算法,最後從圖分割的角度來解釋譜聚類算法。優化
對於一個圖G,咱們一般用G(V,E)來表示它,其中V表明數據集合中的點{v1,v2,...vn},E表明邊集(能夠有邊相連,也能夠沒有)。在接下來的內容中咱們用到的都是帶權重圖(即兩個頂點vi和vj之間的連邊帶有非負權重wij>0).由此能夠獲得一個圖的加權鄰接矩陣W=(Wij)i,j=1,...n。若是Wij=0表明兩個頂點之間無邊相連。無向圖G中wij=wji,因此權重矩陣是對稱的。spa
對於圖中的任意一個點vi,定義它的度爲與它相連的全部邊的權重之和,即。度矩陣就是對角元素分別爲每一個點的度,非對角元素爲0的矩陣。3d
給定點的一個子集A屬於V,定義A的補集爲A的指示向量爲若是fi=1,則頂點vi在子集A中,不然爲0。爲了方便,在下文中,咱們使用來表示頂點i在集合A中。對於兩個不相交子集A,B屬於V,咱們定義表示兩個子集之間的權重和。code
有兩種度量V中子集A大小的方法:|A|表示A中頂點的個數,vol(A)表示A中頂點的度的和。排序
思考咱們構建類似性圖的目的是什麼?是爲了對點之間的局部鄰域關係建模。那麼根據咱們所關注的鄰域關係,類似性圖的定義也能夠不一樣,如下提到的圖都常常在譜聚類中使用:rem
ε鄰域圖:將全部距離小於ε的點相連,因爲有邊相連的點之間都差很少,加權邊不會包含關於圖中數據點更多的關係,所以,這種圖經常是無權重的;it
k近鄰圖:將vi與它前k近的頂點相連,要注意,這種定義的圖是有向圖,由於k近鄰關係並非對稱的(A是B的k近鄰,而B不必定是A的k近鄰)。咱們能夠經過兩種方式將它變成無向圖:一種是隻要A是B的k近鄰,AB之間就會連一條邊;另外一種是必須同時知足A,B是彼此的k近鄰,才能在AB之間連一條邊。在構建好圖以後,在根據點的類似性給邊賦權重;
全鏈接圖:任意兩點之間都連一條邊,並根據兩點之間的類似性給邊賦權重。因爲圖必須能表明局部鄰居關係,因此使用的類似性度量方法必須能對這種關係建模。好比,高斯類似性方程,其中參數σ控制鄰域的寬度(做用相似ε鄰域圖中的ε參數)。
圖拉普拉斯矩陣是譜聚類的主要工具,對這些矩陣的研究有一個專門的領域,叫作譜圖理論,感興趣的同窗能夠去了解下。在這章中咱們定義不一樣的圖拉普拉斯並介紹它們最重要的性質。
在接下來的介紹中,咱們定義的圖G是無向的,帶權重的(權重矩陣爲W),咱們假定全部特徵向量都是標準化的(如常向量C和aC是同樣的),特徵值是有序且可重複的,若是提到了前k個特徵向量,就意味着這k個特徵向量對應k個最小的特徵值。D表明上文提到的度矩陣,W表明權重矩陣。
非規範化圖拉普拉斯矩陣:
非規範化圖拉普拉斯矩陣定義爲L:D-W,它具備以下重要特性:
1. 對於任意特徵向量,有:
;
證實:
2. L是對稱半正定的;
證實:D,W都是對稱的,且特性1的證實代表L是半正定的;
3. L的最小特徵值是0,對應的特徵向量是單位向量;
4. L有n個非負的實值特徵向量:
證實:由前三個特性能夠直接得出;
注意非規範化圖拉普拉斯矩陣以及它的特徵向量,特徵值能夠被用在描述圖的不少特性,其中在譜聚類中的一個重要性質以下:
證實:以k=1爲例,表明這是一個連通圖,假設特徵值0對應的特徵向量爲f,則,因爲權重w是非負的,要使和爲0當且僅當每一項都爲0。所以,若是兩個頂點vi和vj有邊相連(wij>0),fi必須等於fj,從這裏能夠看出若是圖中的頂點能夠有一條路徑相連,那麼f必須是常向量。此外,因爲無向圖中連通份量的全部頂點均可以經過一條路徑相連,因此f在整個連通份量上必須是常數。所以在只有一個連通份量的圖中,只有一個常向量做爲0的特徵向量(做爲惟一一個聯通部分的指示向量)。
如今考慮k大於1的場景,不失通常性,咱們假設頂點是按照它們所屬的連通份量排序的,在這種情形下,鄰接權重矩陣W能夠寫成分塊對角矩陣的形式,一樣,L能夠寫做
注意,每個塊Li 也是一個圖拉普拉斯矩陣,分別對應圖的第i個連通份量,L的普就由Li的普組合而成,並且L對應的特徵向量就是Li的特徵向量。因爲Li一個連通圖的圖拉普拉斯矩陣,而每個Li有重數爲1的特徵值0,也就是對應第i個聯通子圖的常向量。
規範化圖拉普拉斯矩陣
規範化圖拉普拉斯矩陣有以下兩種定義:
咱們先來介紹它們的性質:
1. 對任意特徵向量,咱們有:
;
2. λ是Lrw的特徵向量u的特徵值 當且僅當 λ是Lsym的特徵向量的特徵值;
3. λ是Lrw的特徵向量u的特徵值當且僅當λ和u知足Lu=λDu;
4. 0是Lrw的常數特徵向量的特徵值,那麼0也是Lsym的特徵向量的特徵值。;
5. Lsym和Lrw是半正定的且有n個非負的實特徵值;
與非規範化圖拉普拉斯矩陣相同,Lsym和Lrw的0特徵值的重數k就等於圖中聯通份量的個數,證實與上面相似,再也不贅述。
如今咱們來介紹最多見的譜聚類算法。
解釋:首先構建類似性圖,並用W表示權重鄰接矩陣,構建度矩陣D,求出拉普拉斯矩陣L;計算L的前m個特徵向量,以這m個特徵向量做爲列組成n*m的矩陣U,其中每一行做爲一個m維的樣本,共n個,對這n個行向量進行kmeans聚類。
對於規範化的譜聚類有兩種不一樣的版本,依賴於兩種標準化圖拉普拉斯矩陣。
第一種是:
注意這裏使用的是generalized eigenvectors(廣義特徵向量),即矩陣Lrw對應的特徵向量,因此這一算法針對的是標準化的拉普拉斯矩陣Lrw。
下一個算法也是標準化的譜聚類,不過用的是Lsym,該算法介紹了一種額外的行標準化步驟:
上面三種算法的步驟其實都差很少,只不過是使用的拉普拉斯矩陣有差異。在算法中,主要的工做就是將x抽象表徵爲k維的數據點(降維),接下來咱們將揭曉爲何這樣作能提升聚類的效果。咱們將從圖分割的角度來介紹譜聚類的工做原理。
聚類算法的思想就是根據數據點之間的類似性將它們劃分到不一樣組。當咱們的數據以類似性圖的形式給出時,聚類問題又能夠這樣解釋:咱們想要找到圖的一種劃分,不一樣組點的邊之間有很低的權重而同一個組中點之間的邊有較高的權重。在本節中,咱們將介紹如何將譜聚類問題近似於圖的劃分問題。
給定一個類似性圖,鄰接權重矩陣W,最簡單直接的方法來建立一個圖的分割就是解決最小割問題。前面咱們已經提到過和A的補集的概念。給定子集個數k,最小割方法就是選擇一種劃分A1,...,Ak使得最小。特別是對k=2,最小割問題相對是一個簡單的問題,能夠被有效地解決。然而在實際中,最小割的解並不能很好地將圖劃分,由於它只是簡單地將一個獨立的點從剩餘的圖中劃分出來,這顯然不符合聚類的需求。解決這種問題的一種方法是必須保證子集A1,...,Ak足夠大,實現這一限制的最多見的目標函數有兩種:RatioCut和Ncut。RatioCut用子集A中點的個數表示A的大小,Ncut用子集A中邊的權重和來度量A的大小,它們的定義分別以下:
假如簇Ai不是特別小,兩個目標函數的值都會有較小的值,所以這兩種函數都試圖達到聚類的平衡,可是,引入這一「平衡」條件使得以前簡單的最小割問題變成了np難問題。譜聚類就是解決這一問題的一種鬆弛版本,咱們將看到鬆弛Ncut將會致使規範化譜聚類,而鬆弛RatioCut將致使非標準化譜聚類。
咱們先討論k=2的情形,咱們的目標函數是,首先重寫這個問題。給定子集A,咱們定義向量,其中
如今RatioCut目標函數能夠寫做非規範化圖拉普拉斯矩陣的形式:
而,
最後,因爲f知足
因此,優化問題重寫爲:
這是一個離散優化問題由於僅容許解向量f中的每個值只能是兩個特殊值,還是Np難問題。最經常使用的鬆弛就是將離散條件改成fi能夠取任意實數,鬆弛後的目標函數爲
根據Rayleigh-Ritz理論,問題的解f爲拉普拉斯矩陣L的第二小的特徵值所對應的特徵向量(最小的特徵值爲0,對應常向量)。因此咱們能夠經過求L的第二特徵向量來解決RatioCut問題。然而咱們獲得的f是實值向量,要把它轉化爲離散的指示向量,最簡單的方式就是使用sign,
推廣到k>2的場景,將V劃分紅k個子集A1,...Ak,咱們定義k個指示向量,其中表明每一個點的劃分狀況。定義矩陣做爲以k個指示向量爲列向量的矩陣,顯然H中的列相互正交,於上面的計算相似,咱們能夠獲得,進而,而後獲得RatioCut問題的定義:
Tr表示矩陣的跡,因此最小化RatioCut問題能夠寫做
一樣的,咱們運行H中的取值爲任意實數,鬆弛後的問題爲:
這是跡極小化問題的標準形式,一樣根據Rayleigh-Ritz理論,問題的解就是選擇包含L的前k個特徵向量做爲列而組成的H矩陣。其實矩陣H就是上面非標準化譜聚類算法中提到的矩陣U。而後將實值矩陣轉化成離散的形式。最後用kmeans對U的每一行進行聚類。
與在RatioCut中用到的類似的技術一樣能夠用到規範化譜聚類做爲最小化Ncut的鬆弛。當k=2時咱們定義聚類的指示向量f中的每一個元素爲
和上面相似咱們能夠檢查,,以及所以,能夠重寫最小化Ncut問題爲
而後對問題進行鬆弛:
定義,有
其中,是Lsym的第一特徵向量,vol(V)是常數。所以,上述目標函數符合Rayleigh-Ritz理論,最優解g就是Lrw的第二特徵向量。
推廣到k>2的場景,咱們定義指示向量,且
定義H爲包含k個指示向量(做爲列)的矩陣。顯然,
那麼最小化Ncut問題能夠寫做
,鬆弛後爲
這又是一個標準的跡最小化問題,問題的解T是包含Lsym的前k個特徵向量爲列向量的矩陣。再將代入,能夠發現H包含矩陣Lrw的前k個特徵向量。
譜聚類的優勢:
1. 對於處理稀疏數據的聚類效果頗有效;
2. 使用了降維,在處理高維數據聚類時比傳統聚類好;
3. 當聚類的類別個數較小的時候,譜聚類的效果會很好;
4. 譜聚類算法創建在譜圖理論上,與傳統的聚類算法相比,具備能在任意形狀的樣本空間上聚類且收斂於全局最優解。
譜聚類的缺點:
1. 譜聚類對類似圖和聚類參數的選擇很是敏感;
2. 譜聚類適用於均衡分類問題,即簇之間點的個數差異不大,對於簇之間點的個數相差懸殊的問題不適用。
掃碼關注
獲取有趣的算法知識