K Means聚類和EM演算法複習總結

2021-07-27 20:03:04 字數 2562 閱讀 2940

摘要:

1.演算法概述

2.演算法推導

3.演算法特性及優缺點

4.注意事項

5.實現和具體例子

6.適用場合

內容:1.演算法概述

k-means演算法是一種得到最廣泛使用的聚類演算法。 它是將各個聚類子集內的所有資料樣本的均值作為該聚類的代表點。

k-means 計算過程:

(1)隨機選擇k個類簇的中心

(2)計算每乙個樣本點到所有類簇中心的距離,選擇最小距離作為該樣本的類簇

(3)重新計算所有類簇的中心座標,直到達到某種停止條件(迭代次數/簇中心收斂/最小平方誤差)

期望最大化(expectation maximization)是在含有隱變數(latent variable)的模型下計算最大似然的一種演算法

其中z是隱變數,theta是待定引數;e-step是固定引數theta,求z的期望;m-step是theta的極大似然估計

擴充套件:k均值的其他變種(二分k均值,kmeans++,mini-batch kmeans),層次聚類,密度聚類(dbscan,密度最大值聚類),吸引子傳播演算法(ap),譜聚類,標籤傳遞演算法(lpa)

擴充套件:聚類的衡量指標:均一性,完整性,v-measure,輪廓係數

2.演算法推導

2.1 從kmeans目標函式/損失函式角度解釋其收斂性:

從損失函式角度講,kmeans和線性回歸都是服從高斯分布的。從平方距離(l2範數球)上講,k均值適合處理類圓形資料。

以上證明k均值聚類中心的梯度損失方向就是其類簇內的均值,從而從梯度下降演算法/凸優化上解釋了kmeans是收斂的。

2.2 使用em演算法推導k-means:

k-means演算法是高斯混合聚類在混合成分方差相等,且每個樣本僅指派乙個混合成分時候的特例。

k-means中每個樣本所屬的類就可以看成是乙個隱變數,在e步中,我們固定每個類的中心,通過對每乙個樣本選擇最近的類優化目標函式,在m步,重新更新每個類的中心點,該步驟可以通過對目標函式求導實現,最終可得新的類中心就是類中樣本的均值。

深入:em的收斂性證明

2.3 em演算法的理論基礎

極大似然估計

jensen不等式

2.4 em演算法的具體推導

先貼乙個圖,說明em演算法在做什麼:

圖中x是隱變數,不方便直接使用對數極大似然法求解引數thera,em的策略就是先隨便給乙個條件概率p1(x|thera),然後找到乙個l(thera)的下界函式r(x|thera),求r的最大值p2(x|thera),重複該過程知道重複到區域性最大值。

關於em中e-step和m-step可以查閱這篇文章:(em演算法)the em algorithm

3.演算法特性及優缺點

特性:本演算法確定的k個劃分到達平方誤差最小。當聚類是密集的,且類與類之間區別明顯時,效果較好。

優點:(1)原理簡單,實現容易;

(2)對於處理大資料集,這個演算法是相對可伸縮和高效的

(3)當簇近似為高斯分布時,它的效果較好

缺點:(1)在簇的平均值可被定義的情況下才能使用,可能不適用某些應用

(2)初始聚類中心的選擇比較敏感,可能只能收斂到區域性最優解(改進:選取距離盡可能遠的點作為初始聚類 實現kmeans++)

(3)必須事先確定k的個數 (根據什麼指標確定k)

(4)演算法複雜度高o(nkt)

(5)不能發現非凸形狀的簇,或大小差別很大的簇

(6)對雜訊和孤立點資料敏感

4.注意事項

k-means初值的選擇:k-means是初值敏感的,可以通過根據到簇中心距離,給樣本點不同的隨機概率,從而避免初值敏感問題,kmeans++即此演算法的實現

k值的選擇:業務上有具體的分類數最好,如果沒有可以採用機器學習中的一些指標,比如損失函式最小,根據層次分類找到比較好的k值,聚類的輪廓係數等等。

對不同的資料分布選擇不同的

歸一化:基於距離的演算法都需要進行無量綱化,防止樣本在某些維度上過大導致距離計算失效

後處理:具有最大sse值的簇劃分為兩個簇,具體實現只要將屬於最大簇的資料點用k-均值聚類,設定簇數k=2即可。

為了保證簇總數不變,可以合併最近的質心,或者合併兩個使得sse值增幅最小的質心。

5.實現和具體例子

《機器學習實戰》中的k-mean和二分k-means以及基於地點座標的聚類

spark mllib的kmeans實現;spark mllib的二分k-means(bisectingkmeans)--有時間研究下

網際網路防刷(反作弊)-- 離群值檢測

6.適用場合

支援大規模資料

特徵維度

是否有 online 演算法:有,spark mllib的流式k均值

特徵處理:支援數值型資料,類別型型別需要進行0-1編碼

聚類和EM演算法 密度聚類

模型原型 class sklearn.cluster.dbscan eps 0.5,min samples 5,metric euclidean algorithm auto leaf size 30,p none,random state none 引數 eps 引數,用於確定鄰域大小 min s...

EM聚類演算法

em演算法也稱期望最大化 expectation maximum,簡稱em 演算法它是乙個基礎演算法,是很多機器學習領域演算法的基礎,比如隱式馬爾科夫演算法 hmm lda主題模型的變分推斷等等。em演算法解決這個的思路是使用啟發式的迭代方法,既然我們無法直接求出模型分布引數,那麼我們可以先猜想隱含...

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...