1. 程式人生 > >【無監督學習】5:譜聚類演算法原理介紹

【無監督學習】5:譜聚類演算法原理介紹

前言:學習譜聚類,最好有一些圖論、矩陣分解(SVD)方面的知識,這樣會更加有利於譜聚類的學習。當然,譜聚類理解起來並不困難,實際操作也大多是譜聚類+K-means聚類聯合使用的
—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-
—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-

一、什麼是譜聚類

譜聚類演算法是建立在圖論–圖譜理論基礎上的,它的本質是將聚類問題轉化為圖的最優劃分問題。

  • 譜——可以理解為矩陣的特徵值的集合;
  • 之前的聚類演算法例如:K-means、DBSCAN、區域性聚類演算法都是點對點的聚類方式,而譜聚類是把點對點轉化成圖的相關知識,用圖論裡的最優劃分來解決點的聚類問題。

二、圖的簡單介紹

譜聚類方式就是要把點與點轉化成圖,那麼圖論的相關知識就簡單介紹一下,如果想詳細瞭解,推薦學習一下《圖論》或者《離散數學》裡面都有更為具體的介紹。

2.1、圖的表示

  • 構成圖的三要素——節點,連線節點的邊,以及邊上的權重;
  • 如果給圖的每條邊規定一個方向,那麼得到的圖稱為有向圖。在有向圖中,與一個節點相關聯的邊有出邊和入邊之分。相反,邊沒有方向的圖稱為無向圖。
  • 一般用G(V,E)表示無向圖,V={
    v1
    ,v2,…,vn}表示點集,E表示邊集。每條邊上有wij表示vivj之間關係,被稱為權重,對應無向圖是有wij=wji,且wii=0,wij>=0。

例如下圖展示的是一個無向圖,邊上的數值表示權重
這裡寫圖片描述

2.2、圖的劃分

圖的劃分:是將圖完全劃分為若干個子圖,各子圖間無交集。也就是說將原圖轉化成一個完備資料組。
劃分要求:同子圖內的點相似度高,不同子圖內的點相似度低——像K-means的類內緊湊,類間獨立。
劃分的損失函式:劃分時子圖之間被“截斷”的邊的權重和,例如圖下,劃分兩個區域的最小損失函式=0.1+0.2
這裡寫圖片描述

那麼:


問題1來了:上面是一個“恰好完美”分成兩份的例圖。我們該如何通過數學推導來證明上圖的分割成兩份是最完美的呢?
問題2來了:那我想把上圖“完美”分成三份、分成四份,我又該怎麼切分呢?

三、圖的拉普拉斯矩陣

要想解決上面的兩個問題,我們只需要圖的拉普拉斯矩陣就可以解決了。那麼圖的拉普拉斯怎麼求呢?
圖的拉普拉斯矩陣L是與圖的鄰接矩陣W、度矩陣D有關係的,關係式為:L = D - W

3.1、圖的鄰接矩陣W

圖的鄰接矩陣是和圖的每條邊的方向、每條邊的權重有關係的。具體且簡單的說:
在無向圖中,如下:
①號點與②號點權重是0.8,所以1–>2和2–>1的值都是0.8;
①號點與④號點沒有直接連線,所以相互權重都是0;自身到自身也是0
這樣就可以得到圖的鄰接矩陣了。
這裡寫圖片描述

而有向圖的鄰接矩陣,要根據各點與各點邊的方向,以及權重確定的。所以無向圖的鄰接矩陣一定是一個對稱矩陣,有向圖則不一定。

3.2、圖的度矩陣D

圖的度,在無向圖中即為連線某一點所有邊的權重的總和。而在有向圖中由於邊的方向導致某一點連線其他的點會有出度、入度之分——指向該點為入度,該點發出為出度,此時有向圖的度=出度-入度。
這裡寫圖片描述
例如上圖是無向圖,所以①點的度=0.8+0.6+0.1=1.5

3.3、圖的拉普拉斯矩陣L

圖的拉普拉斯矩陣L是與圖的鄰接矩陣W、度矩陣D有關係的,關係式為:L = D - W

這裡寫圖片描述

最後對圖的拉普拉斯矩陣L做SVD分解——也就是求出矩陣L的特徵值所對應的特徵向量,通過特徵向量來對圖進行劃分,上圖例子的結果如下:

這裡寫圖片描述

說明幾點:

  1. 為什麼第一列特徵值是相同的值:因為這是無向圖,無向圖的拉普拉斯矩陣每一列或每一行加起來都是等於1的,也就是說矩陣肯定有一個特徵值=0,那麼0所對應的特徵向量=1(等於1就是相同的意思)
  2. 怎麼根據特徵向量做圖形劃分:劃分N類,就取前N個特徵向量組成的點集,再用K-means聚成N類進行劃分
  3. 比如劃分兩類,就取前兩列特徵向量。而由於這是無向圖,所以第一列要不要無所謂(無向圖的第一列相當於降維了),只根據第二列進行K-means聚成兩類,很明顯①②③是同類,④⑤⑥是又一類。
  4. 比如劃分三類,就取前三列特徵向量,無向圖就相當於組成了一個二維座標系中的點集——第一個點座標是(-0.408,-0.647),第二個點座標是(-0.442,0.014),這樣在二維座標系中用K-means聚成三類即完成。
  5. 特別說明有向圖第一列就不能省略了哦

3.4、譜聚類演算法分析

這裡寫圖片描述

—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-
—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-
譜聚類知識請看這個大神部落格:https://blog.csdn.net/yc_1993/article/details/52997074
—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-
—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-—-

系列推薦: