您當前的位置:首頁 > 曲藝

資料探勘入門筆記——譜聚類(初來乍到)

作者:由 Loss Dragon 發表于 曲藝時間:2023-02-06

寫在前面:健忘星人自學筆記,僅供參考

本章預計簡單介紹一下譜聚類的內容,由於譜聚類是基於圖論的,雖然使用起來簡單,但是理解清楚並不容易,需要一定的知識鋪墊,對萌新很不友好,一部分推導內容下文省略。

但是大家如果能認真啃下來問題不是很大,下面是一篇較為簡單易懂的閱讀材料,希望能有幫助

譜聚類詳細、入門級介紹 - 百度文庫

專業性較好的參考資料:

https://

blog。csdn。net/qq_245196

77/article/details/82291867

一、譜聚類原理

譜聚類,是一種基於

圖論

的聚類方法,透過樣本資料的

拉普拉斯矩陣的特徵向量

進行聚類。

上面的定義看不懂沒關係,我們換一種說法。

譜聚類的思想,是將原問題轉化為“圖分割“的問題。

這裡面涉及兩個關鍵的步驟:

(1) 如何將原資料,轉化為“無向權重圖“

(2)如何對圖進行分割?

1.1 無向圖定義

資料探勘入門筆記——譜聚類(初來乍到)

上圖是一張“無向權重圖“示例

圖,是若干個

頂點

相互連線組成的,分為無向圖和有向圖。

邊沒有方向的圖,稱為無向圖。

在上圖中,我們觀察到有6個頂點,也就是有6組資料樣本,用 V={

v_1, v_2, v_3……v_6

} 表示。兩個頂點之間由藍色的邊連線,用字母 E 表示邊集。

無向圖,表示為 G(V, E)

我們注意到,邊上顯示的數字

表示的是兩個頂點之間的邏輯關係

(相似程度),我們稱之為“權重”,用

W_{ij}

來表示。(

W_{ij}

>0 )

在無向圖中,邊的權重

W_{ij} = W_{ji}

( 因為邊沒有方向 )

並且,

W_{ii} = 0

1.2 圖分割初探

在繪製出無向圖之後,我們想要做的,是將圖完全分成若干個子圖。

要求: 同子圖內的點相似度高;

不同子圖內的點相似度低;

資料探勘入門筆記——譜聚類(初來乍到)

上圖的劃分,看起來似乎是一個不錯的選擇。

這樣切圖的方法,我們截斷了兩條邊,

損失函式可以定義為被截斷邊的權重之和

Cut(G_1,G_2)=\sum_{i\in G_1,j\in G_2}^{}{W_{ij}}

如何選擇一個最佳的截斷方式? 我們很自然會想到最小化

Cut(……)

損失函式。

但是直接最小化,又會遇到一個問題,

資料探勘入門筆記——譜聚類(初來乍到)

錯誤的分割

例如,按照上圖的分割,切成了單點離散的圖,顯然這樣是最快且最能滿足那個最小化操作的。但這明顯不是想要的結果,合理的切分結果應該是組內的樣本點儘可能的多,所以後面我們要學習 RatioCut 和 Ncut 的分割方法。

透過上面的介紹,希望大家能對譜聚類的原理有一個大體上的瞭解,下面我們將對演算法詳細展開。

二、無向圖權重

資料探勘入門筆記——譜聚類(初來乍到)

在上面的例子裡,我們定義了頂點 i 和 頂點 j 連線起來的邊的權重為

W_{ij}

將所有權重以矩陣的形式存放,我們稱之為

鄰接矩陣

以上圖為例,

資料探勘入門筆記——譜聚類(初來乍到)

注意:

W_{ij} = W_{ji}

( 因為邊沒有方向 ),並且,

W_{ii} = 0

這裡我們直接給出了鄰接矩陣裡的數值。但是在譜聚類問題中,我們只有頂點向量,怎麼才能計算得到鄰接矩陣呢?

權重的基本思想是,距離較遠的兩個點之間的邊權重值較低,而距離較近的兩個點之間的邊權重值較高。

但這僅僅是定性,我們需要定量的權重值。

一般來說,

我們可以透過樣本點距離度量的相似矩陣 S 來獲得鄰接矩陣W。

構建鄰接矩陣W的方法有三類:

ϵ-鄰近法,Knn 和全連線法。

(1)ϵ-鄰近法

(很少用)

對於ϵ-鄰近法,它設定了一個距離閾值ϵ,然後用歐式距離

s_{ij}

度量任意兩點

x_i

x_j

的距離。

S_{ij} =|| x_i-x_j ||^2

然後根據

s_{ij}

和 ϵ 的大小關係,來定義鄰接矩陣W :

資料探勘入門筆記——譜聚類(初來乍到)

從上式可見,兩點間的權重要不就是ϵ ,要不就是0,矩陣中沒有攜帶關於資料集的太多資訊,所以該方法一般很少使用,在sklearn中也沒有使用該方法。

(2)Knn

基本思想是,利用 Knn 演算法遍歷所有的樣本點,取每個樣本最近的 k 個點作為近鄰,只有和樣本距離最近的 k 個點之間的

W_{ij}>0

但是,由於每個樣本點的 k 個近鄰可能不是完全相同的,所以用此方法構造的相似度矩陣並不是對稱的。

為了解決這種問題,一般採取下面兩種方法之一:

方法一、只要一個點在另一個點的K近鄰中,就保留

s_{ij}

方法二、必須兩個點互為K近鄰,才能保留

s_{ij}

(很顯然第二種方式比第一種方式生成的相似度矩陣要稀疏。)

(3)全連線法

(最常用)

相比前兩種方法中,全連線法中所有的點之間的權重值都大於0。

可以選擇不同的核函式來定義邊權重,常用的有:多項式核函式,高斯核函式和Sigmoid核函式。

其中,最常用的是高斯核函式RBF

,在sklearn中預設的也是該方法,此時相似矩陣和鄰接矩陣相同:

資料探勘入門筆記——譜聚類(初來乍到)

高斯核函式

從公式中可以看出,任意兩個樣本點都有相似度,但是距離較遠的樣本點之間相似度較低,甚至可以忽略。

其中,引數

\delta

控制著樣本點的鄰域寬度,

\delta

越大表示樣本點與距離較遠的樣本點的相似度越大,反之亦然。

上面說了這麼多,還只解決了第一個問題,

如何將原資料轉化為無向權重圖 ?

下面我們要說,

如何對圖進行分割?

三、損失函式與拉普拉斯矩陣

之前,我們定義了損失函式——被截斷邊的權重之和

Cut(G_1,G_2)=\sum_{i\in G_1,j\in G_2}^{}{W_{ij}}

假設 G( V, E) 被劃分為 G1,G2 兩個子圖,設G有 n 個頂點

定義 q = [

q_1, q_2,q_3…q_n

] 是一個 n 維向量,用來表示劃分方案

資料探勘入門筆記——譜聚類(初來乍到)

例如,

資料探勘入門筆記——譜聚類(初來乍到)

按照上圖劃分,q = [

c_1, c_1,c_1,c_2,c_2,c_2

Cut(G_1,G_2)=\sum_{i\in G_1,j\in G_2}^{}{W_{ij}} = \frac{\sum_{i=1}^{n}{}\sum_{j=1}^{n}{W_{ij}(q_i-q_j)^2}}{2(c_1-c_2)^2}

分子可變換為,

\sum_{i=1}^{n}{}\sum_{j=1}^{n}{W_{ij}(q_i-q_j)^2} = 2q^TLq

因此,

Cut(G_1,G_2)= \frac{q^TLq}{(c_1-c_2)^2}

其中,

L

為拉普拉斯矩陣。

補充知識:

若一個矩陣為拉普拉斯矩陣,則其對任意一個向量

f

都有,

資料探勘入門筆記——譜聚類(初來乍到)

拉普拉斯矩陣的計算:

L = D-W

其中,D 為度矩陣,W 為鄰接矩陣

鄰接矩陣在上面已經介紹過,下面補充介紹一下

度矩陣

對於任意一個點 i,它的度 di 定義為

和它相連的所有邊的權重之和

,即

d_i = \sum_{j=1}^{n}{W_{ij}}

利用點的定義,度矩陣D是一個對角矩陣,只有主對角線有值。

資料探勘入門筆記——譜聚類(初來乍到)

舉例,

資料探勘入門筆記——譜聚類(初來乍到)

頂點1的度,d1 = 0。8 +0。6 +0。1 = 1。5

資料探勘入門筆記——譜聚類(初來乍到)

圖片引用自推薦閱讀材料1

資料探勘入門筆記——譜聚類(初來乍到)

圖片引用自,推薦閱讀材料1

四、圖分割

上面我們對損失函式進行了一系列變換,最終得到

Cut(G_1,G_2)= \frac{q^TLq}{(c_1-c_2)^2}

圖形分割的一種方法——

最小切(Minimum Cut)

,就是直接最小化上式。

但是之前我們也說過,在許多情況下 Minimum Cut 只是簡單的將圖中的一個頂點與其餘的頂點分開,這並不是我們想要的結果。所以mincut在實際中並不常用。

合理的切分應該是組內的樣本點儘可能的多。

下面我們介紹另外兩個切圖方式 Ratio Cut 和 Normalized Cut,二者都在上式的基礎上進行了一定的改進。

資料探勘入門筆記——譜聚類(初來乍到)

在 RatioCut 切圖中,不僅要考慮使不同組之間的權重最小化,也考慮了使每個組中的樣本點儘量多。

在 N Cut 切圖中,除了考慮最小化損失函式之外,還考慮了子圖之間的權重大小。

由於子圖樣本的個數多並不一定權重就大,切圖時基於權重也更合目標,

因此一般來說Ncut 切圖優於 RatioCut 切圖。

證明及推導過程省略,詳細請參考推薦閱讀2

也可以參考,

轉載自:【聚類演算法】譜聚類(Spectral Clustering)

(有空的時候再詳細分解)

五、優缺點

優點:

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

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

缺點:

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

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

今天的內容就到這裡,感謝觀看~~

標簽: 聚類  權重  矩陣  樣本  鄰接矩陣