譜聚類(spectral clustering)的思想最先能夠追溯到一個古老的希臘傳說,話說當時有一個公主,因爲其父王去世後,長兄上位,想獨攬大權,便殺害了她的丈夫,而爲逃命,公主來到了一個部落,想與當地的酋長買一塊地,因而將身上的金銀財寶與酋長換了一塊牛皮,且與酋長約定只要這塊牛皮所佔之地便可。聰明的酋長以爲這買賣可行,因而乎便應了。卻不知,公主把牛皮撕成一條條,沿着海岸線,足足圍出了一個城市。
故事到這裏就結束了,可是咱們要說的纔剛剛開始,狄多公主圈地傳說,是目前知道的最先涉及Isoperimetric problem(等周長問題)的,具體爲如何在給定長度的線條下圍出一個最大的面積,也可理解爲,在給定面積下如何使用更短的線條,而這,也正是譜圖聚類想法的端倪,如何在給定一張圖,拿出「更短」的邊來將其「更好」地切分。而這個「更短」的邊,正是對應了spectral clustering中的極小化問題,「更好」地切分,則是對應了spectral clustering中的簇聚類效果。
譜聚類最先於1973年被提出,當時Donath 和 Hoffman第一次提出利用特徵向量來解決譜聚類中的f向量選取問題,而同年,Fieder發現利用倒數第二小的特徵向量,顯然更加符合f向量的選取,同比之下,Fieder當時發表的東西更受你們承認,由於其很好地解決了譜聚類極小化問題裏的NP-hard問題,這是不可估量的成就,雖而後來有研究發現,這種方法帶來的偏差,也是沒法估量的,下圖是Fielder老爺子,於去年15年離世,緬懷。
算法
一、譜聚類概覽數據結構
譜聚類演化於圖論,後因爲其表現出優秀的性能被普遍應用於聚類中,對比其餘無監督聚類(如kmeans),spectral clustering的優勢主要有如下:性能
1.過程對數據結構並無太多的假設要求,如kmeans則要求數據爲凸集。 2.能夠經過構造稀疏similarity graph,使得對於更大的數據集表現出明顯優於其餘算法的計算速度。 3.因爲spectral clustering是對圖切割處理,不會存在像kmesns聚類時將離散的小簇聚合在一塊兒的狀況。 4.無需像GMM同樣對數據的機率分佈作假設。
一樣,spectral clustering也有本身的缺點,主要存在於構圖步驟,有以下:spa
1.對於選擇不一樣的similarity graph比較敏感(如 epsilon-neighborhood, k-nearest neighborhood,fully connected等)。 2.對於參數的選擇也比較敏感(如 epsilon-neighborhood的epsilon,k-nearest neighborhood的k,fully connected的 )。
譜聚類過程主要有兩步,第一步是構圖,將採樣點數據構形成一張網圖,表示爲G(V,E),V表示圖中的點,E表示點與點之間的邊,以下圖:
圖1 譜聚類構圖(來源wiki)
第二步是切圖,即將第一步構造出來的按照必定的切邊準則,切分紅不一樣的圖,而不一樣的子圖,即咱們對應的聚類結果,舉例以下:
圖2 譜聚類切圖
初看彷佛並不難,可是…,下面詳細說明推導。 rest