下面是scikit-learn中的幾種聚類演算法。
聚類演算法
引數k-means
number of clusters
affinity propagation
damping, sample preference
mean-shift
bandwidth
spectral clustering
number of clusters
ward hierarchical clustering
number of clusters
agglomerative clustering
number of clusters, linkage type, distance
可以發現,大部分聚類演算法的輸入引數,都含有聚類類別數目k,k表示我們需要演算法將樣本聚成幾類。
那麼問題來了,在使用聚類演算法時,我們該如何決定聚類類別數目k值的選取呢?
關於聚類k值問題,有很多種求解的方法。
有暴力的均方根解法,也有直觀的**法,下面介紹幾種常用的方法。
假設我們有m個樣本,該方法認為k=m^(1/2)(即根號m)
首先給出聚類演算法的一些符號表示
* 聚類演算法的m個輸入樣本:x(
1),.
..,x
(m)' role="presentation" style="position: relative">x(1
),..
.,x(
m)x(
1),.
..,x
(m)*
x(i)
' role="presentation" style="position: relative">x(i
)x(i
)所屬的聚類中心:μc
(i)' role="presentation" style="position: relative">μc(
i)μc
(i)聚類演算法在聚類過程中,會尋找每個樣本到聚類中心距離最小的點作為聚類中心。所以聚類演算法的優化目標為:j(
c(1)
,...
,c(m
),μ1
,...
,μk)
=1m∑
1m(∥
x(i)
−μc(
i)∥)
' role="presentation" style="text-align: center; position: relative">j(c
(1),
...,
c(m)
,μ1,
...,
μk)=
1m∑1
m(∥x
(i)−
μc(i
)∥)j
(c(1
),..
.,c(
m),μ
1,..
.,μk
)=1m
∑1m(
∥x(i
)−μc
(i)∥
)其中優化目標j的值就表示每個樣本到聚類中心的距離之和,所以j在某種程度上表示了誤差,j最小則聚類誤差最小。
當k取值不同,得到的j值也不同。
elbow法認為,k值應該取拐點上的那個值,如下圖。
手肘法的核心思想是:隨著聚類數k的增大,樣本劃分會更加精細,每個簇的聚合程度會逐漸提高,那麼誤差平方和sse自然會逐漸變小。並且,當k小於真實聚類數時,由於k的增大會大幅增加每個簇的聚合程度,故sse的下降幅度會很大,而當k到達真實聚類數時,再增加k所得到的聚合程度回報會迅速變小,所以sse的下降幅度會驟減,然後隨著k值的繼續增大而趨於平緩,也就是說sse和k的關係圖是乙個手肘的形狀,而這個肘部對應的k值就是資料的真實聚類數。當然,這也是該方法被稱為手肘法的原因。
當然,實際情況中,不一定能看到拐點,也就不一定能使用這種方法。
把樣本的二維、三維特徵圖畫出來,通過觀察,人為決定k值選取。
樣本特徵維度大於三時,用降維或visual intelligence的方法來作圖觀察。
聚類使用中,可以根據上面一些方法確定k值得選取。
但最終決定你聚類k值的,應該是根據你聚類後的後續目的來選取。可以嘗試不同的k,看聚類結果能為你後續目的提供多大幫助。
kmeans聚類選擇最優K值python實現
kmeans演算法中k值的確定是很重要的。下面利用python中sklearn模組進行資料聚類的k值選擇 資料集自製資料集,格式如下 手肘法 手肘法的核心指標是sse sum of the squared errors,誤差平方和 其中,ci是第i個簇,p是ci中的樣本點,mi是ci的質心 ci中所...
R語言 系統聚類 K值聚類
1 系統聚類 系統聚類是將每個樣品分成若干類的方法,其基本思想是 先將各個樣品各看成一類,然後規定類與類之間的距離,選擇距離最小的一對合併成新的一類,計算新類與其他類之間的距離,再將距離最近的兩類合併,這樣每次減少一類,直至所有的樣品合為一類為止。聚類方法 最短距離法和最長距離法 重心法和類平均法 ...
聚類演算法之K均值聚類
k means聚類方法 1.介紹 k均值聚類是基於樣本集合劃分的聚類演算法。由於每個樣本在劃分的過程中只能屬於乙個類別,所以k means演算法屬於硬聚類。2.演算法過程 k均值聚類演算法是乙個迭代的過程,每次迭代包括兩個步驟 3.複雜度 k均值聚類演算法的複雜度o mnk 其中k表示類別數,m表示...