聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut .
聚類算法是ML中一個重要分支,一般采用unsupervised learning進行學習,本文根據常見聚類算法分類講解K-Means, K-Medoids, GMM, Spectral clustering,Ncut五個算法在聚類中的應用。
Clustering Algorithms分類
1. Partitioning approach:
? ? ? ? 建立數據的不同分割,然后用相同標準評價聚類結果。(比如最小化平方誤差和)
? ? ? ? 典型算法:K-Means, K-Medoids
2.?Model-based:
? ? ? ?對于每個類假定一個分布模型,試圖找到每個類最好的模型
? ? ? ?典型算法:GMM(混合高斯)?
3. Dimensionality Reduction Approach:
? ? ? ?先降維,再聚類
? ? ? ?典型算法:Spectral clustering,Ncut
下面分別解析~
1. Partitioning approach
1.目標:
? ? ? ?找出一個分割,使得距離平方和最小
2.方法:
? ? ? ?Global optimal : 枚舉所有partition
? ? ? ?Heuristic method:K-Means, K-Medoids
3.K-Means算法:
? ? ? ?1. 將數據分為k個非空子集
? ? ? ?2. 計算每個類中心點(k-means<centroid>中心點是所有點的average),記為seed point
? ? ? ?3. 將每個object聚類到最近seed point
? ? ? ?4. 返回2,當聚類結果不再變化的時候stop
復雜度:
? ? ? ?O(kndt)
? ? ? ?-計算兩點間距離:d
? ? ? ?-指定類:O(kn) ? ,k是類數
? ? ? ?-迭代次數上限:t
4.K-Medoids算法:
? ? ? ?1. 隨機選擇k個點作為初始medoid
? ? ? ?2.將每個object聚類到最近的medoid
? ? ? ?3. 更新每個類的medoid,計算objective function?
? ? ? ?4. 選擇最佳參數
? ? ? ?4. 返回2,當各類medoid不再變化的時候stop
復雜度:
? ? ? ?O((n^2)d)
? ? ? ?-計算各點間兩兩距離O((n^2)d)
? ? ? ?-指定類:O(kn) ? ,k是類數
5.特點:
? ? ? ?-聚類結果與初始點有關(因為是做steepest descent from a random initial starting oint)
? ? ? ?-是局部最優解
? ? ? ?-在實際做的時候,隨機選擇多組初始點,最后選擇擁有最低TSD(Totoal Squared Distance)的那組
6.KMeans和KMedoid的實現
?
2.?Model-based——GMM(Gaussian Mixture Model)
1.GMM概念:
? ? ? ? ? -將k個高斯模型混合在一起,每個點出現的概率是幾個高斯混合的結果。
? ? ? ? ? -假設有K個高斯分布,每個高斯對data points的影響因子為πk,數據點為x,高斯參數為theta,則
? ? ? ? ? -要估計的模型參數為每個類的影響因子πk,每個類的均值(μk)及協方差矩陣(Σk)
2. GMM的似然函數:
? ? ? ? ? log-likelihood function:
? ? ? ? ? 假設N個點的分布符合i.i.d,則有似然函數
? ? ? ? ? 問題是,對于這樣的一個似然函數,用gradient descent的方法很難進行參數估計(可證明)
? ? ? ? ? 所以用前面我們講過的EM(expectation maximization)算法進行估計:
? ? ? ? ? 引入中間latent項z(i),其分布為Q,用EM算法,就有上面的恒等,那么為什么是恒等呢?來看看講EM的這篇文章,第三張的開頭寫的,=constant,也就是說與z(i)無關了,而等于p(x(i);theta),這也就是說可以用混合高斯模型的概率表示了。
3. EM具體應用到GMM參數求解問題:
E-step: 根據已有observed data和現有模型估計missing data:Qi(zk)
M-step: 已經得到了Q,在M-step中進行最大似然函數估計(可以直接用log-likelihood似然函數對參數求偏導)
4.GMM的實現
5. K-Means與GMM的比較:
? ? ? ? ? -KMeans:
1. Objective function:§Minimize the TSD 2. Can be optimized by an EM algorithm. ? ? ? ? ??§E-step: assign points to clusters. ? ? ? ? ??§M-step: optimize clusters. ? ? ? ? ??§Performs hard assignment during E-step. 3. Assumes?spherical clusters?with equal probability of a cluster.
? ? ? ? ? -GMM:
1. Objective function:§Maximize the log-likelihood. 2. EM algorithm: ? ? ? ? ??§E-step: Compute posterior probability of membership. ? ? ? ? ??§M-step: Optimize parameters. ? ? ? ? ??§Perform soft assignment during E-step. 3. Can be used for?non-sphericalclusters. Can generate clusterswith different probabilities.
3. Dimensionality Reduction Approach: Spectral Clustering?
1. Spectral clustering要解決的問題:
上面的KMeans不能能解決一些問題,如圖所示:
而這種問題可以通過譜聚類(spectral clustering)解決。將數據展開到兩個特征向量空間,即得:
下面我們介紹譜分解的算法~
2.clustering objectives:
? ? ? ? ? 將邊權賦值為兩點之間的similarity,做聚類的目標就是最小化類間connection的weight。
比如對于下面這幅圖,分割如下
? ? ? ? ? 但是這樣有可能會有問題,比如:
由于Graph cut criteria 只考慮了類間差小,而沒考慮internal cluster density.所以會有上面分割的問題。這里引入Normalised-cut(Shi & Malik, 97')。
3. 改進版:Ncut
? ? ? ? ? -consider the connection between groups relative to the density of each group:
? ? ? ? ? 其中,vol 是每個group的volume,也就是normalize by group volume.
? ? ? ? ? 最后的目標是最小化Ncut(A,B).
4. Ncut 的求解:
? ? ? ? ? -Matrix Representation:
? ? ? ? ? -Objective Function of Ncut:
詳見wiki上的求解過程,這里不再贅述。
總結
以上是生活随笔為你收集整理的聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut .的全部內容,希望文章能夠幫你解決所遇到的問題。