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聚類?這也就是譜聚類實現起來...