初識譜聚類SpectralClustering

2021-08-19 09:44:08 字數 2748 閱讀 5495

spectralclustering重要引數與調參注意事項

1)n_clusters:代表我們在對譜聚類切圖時降維到的維數(原理篇第7節的k

1),同時也是最後一步聚類演算法聚類到的維數(原理篇第7節的k

2)。也就是說scikit-learn中的譜聚類對這兩個引數統一到了一起。簡化了調參的引數個數。雖然這個值是可選的,但是一般還是推薦調參選擇最優引數。

2)affinity: 也就是我們的相似矩陣的建立方式。可以選擇的方式有三類,第一類是 'nearest_neighbors'即k鄰近法。第二類是'precomputed'即自定義相似矩陣。選擇自定義相似矩陣時,需要自己呼叫set_params來自己設定相似矩陣。第三類是全連線法,可以使用各種核函式來定義相似矩陣,還可以自定義核函式。最常用的是內建高斯核函式'rbf'。其他比較流行的核函式有『linear』即線性核函式, 『poly』即多項式核函式, 『sigmoid』即sigmoid核函式。如果選擇了這些核函式, 對應的核函式引數在後面有單獨的引數需要調。自定義核函式我沒有使用過,這裡就不多講了。affinity預設是高斯核'rbf'。一般來說,相似矩陣推薦使用預設的高斯核函式。

3) 核函式引數gamma: 如果我們在affinity引數使用了多項式核函式 'poly',高斯核函式『rbf』, 或者'sigmoid'核函式,那麼我們就需要對這個引數進行調參。

多項式核函式中這個引數對應k(x

,z)=

(γx∙

z+r)

d中的γ

。一般需要通過交叉驗證選擇一組合適的γ,r

,d高斯核函式中這個引數對應k(x

,z)=

exp(

γ||x

−z||

2)中的γ。一般需要通過交叉驗證選擇合適的γ

sigmoid核函式中這個引數對應k(x

,z)=

tanh

(γx∙

z+r)

中的γ。一般需要通過交叉驗證選擇一組合適的γ,r

γ預設值為1.0,如果我們affinity使用'nearest_neighbors'或者是'precomputed',則這麼引數無意義。

4)核函式引數degree:如果我們在affinity引數使用了多項式核函式 'poly',那麼我們就需要對這個引數進行調參。這個引數對應k(x

,z)=

(γx∙

z+r)

d中的d。預設是3。一般需要通過交叉驗證選擇一組合適的γ,

r,d5)核函式引數coef0: 如果我們在affinity引數使用了多項式核函式 'poly',或者sigmoid核函式,那麼我們就需要對這個引數進行調參。

多項式核函式中這個引數對應k(x

,z)=

(γx∙

z+r)

d中的r

。一般需要通過交叉驗證選擇一組合適的γ,r

,dsigmoid核函式中這個引數對應k(x

,z)=

tanh

(γx∙

z+r)

中的r。一般需要通過交叉驗證選擇一組合適的γ,r

coef0預設為1.

6)kernel_params:如果affinity引數使用了自定義的核函式,則需要通過這個引數傳入核函式的引數。

7 )n_neighbors: 如果我們affinity引數指定為'nearest_neighbors'即k鄰近法,則我們可以通過這個引數指定knn演算法的k的個數。預設是10.我們需要根據樣本的分布對這個引數進行調參。如果我們affinity不使用'nearest_neighbors',則無需理會這個引數。

8)eigen_solver:1在降維計算特徵值特徵向量的時候,使用的工具。有 none, 『arpack』, 『lobpcg』, 和『amg』4種選擇。如果我們的樣本數不是特別大,無需理會這個引數,使用''none暴力矩陣特徵分解即可,如果樣本量太大,則需要使用後面的一些矩陣工具來加速矩陣特徵分解。它對演算法的聚類效果無影響。

9)eigen_tol:如果eigen_solver使用了arpack』,則需要通過eigen_tol指定矩陣分解停止條件。

10)assign_labels:即最後的聚類方法的選擇,有k-means演算法和 discretize演算法兩種演算法可以選擇。一般來說,預設的k-means演算法聚類效果更好。但是由於k-means演算法結果受初始值選擇的影響,可能每次都不同,如果我們需要演算法結果可以重現,則可以使用discretize。

11)n_init:即使用k-means時用不同的初始值組合跑k-means聚類的次數,這個和k-means類裡面n_init的意義完全相同,預設是10,一般使用預設值就可以。如果你的n_clusters值較大,則可以適當增大這個值。

從上面的介紹可以看出,需要調參的部分除了最後的類別數n_clusters,主要是相似矩陣affinity的選擇,以及對應的相似矩陣引數。當我選定乙個相似矩陣構建方法後,調參的過程就是對應的引數交叉選擇的過程。對於k鄰近法,需要對n_neighbors進行調參,對於全連線法裡面最常用的高斯核函式rbf,則需要對gamma進行調參。

參考:1.

2.3.

4.5.

譜聚類概述

一 簡述 聚類是對探索性資料分析最廣泛使用的技術,在現在各個科學領域中處理沒有類標的資料時,人們總是想通過確定資料中不同樣本的歸類,來獲取對資料的直觀印象。傳統的聚類方法有很多,像k means,single linkage等,但是k means演算法有些缺點,比如當樣本維度特別大的時候,k mea...

20150916譜聚類學習

什麼是譜聚類?譜聚類的思想是生成乙個帶權無向圖g。g的每個頂點表示乙個樣本,連線頂點的邊表示兩個樣本之間具有相似性,邊的權值即樣本之間的相似度大小。然後對圖進行分割,使得不同組之間的邊的相似度盡可能的小,組內邊的相似度盡可能的大。因此,譜聚類需要解決兩個問題 如何生成帶權無向圖g?如何對圖進行分割?...

機器學習 譜聚類

譜聚類,譜就是指矩陣所有的特徵值的集合 而矩陣指的是由所有資料形成的圖的laplacian矩陣。因此譜聚類就是計算資料的laplacian矩陣的特徵向量,再取特徵向量中的一部分進行kmeans聚類。but,為什麼是laplacian矩陣?為什麼不直接對原始資料kmeans聚類?這也就是譜聚類實現起來...