摘要:
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步,重新更新每個類的中心點,該步驟可以通過對目標函數求導實現,最終可得新的類中心就是類中樣本的均值。
2.3 EM算法的理論基礎
期望--參見概率論雜記
極大似然估計--參見數理統計與參數估計雜記
Jensen不等式--參見凸函數與凸集雜記
2.4 EM算法的具體推導
先貼一個圖,說明EM算法在做什么:
圖中x是隱變量,不方便直接使用對數極大似然法求解參數thera,EM的策略就是先隨便給一個條件概率p1(x1|thera),然后找到一個l(thera)的下界函數r(x1|thera),求r的最大值p2(x2|thera),再找到經過p2點的下界函數r2(x2|thera),重復該過程直到收斂到局部最大值。
給定的訓練樣本是,樣例間獨立,我們想找到每個樣例隱含的類別z,能使得p(x,z)最大。
其中是樣本i為組分z的概率,最后一步可以看作是關於
的期望的凹函數的Jensen不等式
當不等式變成等式時,說明我們找到了最接近的函數。按照這個思路要想讓等式成立,需要讓隨機變量變成常數值,這里得到:
c為常數,不依賴於。對此式子做進一步推導,我們知道
,那么也就有
,那么有下式:
在固定其他參數后,
的計算公式就是后驗概率,解決了
如何選擇的問題。這一步就是E步,建立
的下界。
3.算法特性及優缺點
特性:本算法需要確定k個划分以到達平方誤差最小。當聚類是密集的,且類與類之間區別明顯時,效果較好。
優點:
(1)原理簡單,實現容易;
(2)對於處理大數據集,這個算法是相對可伸縮和高效的
(3)當簇近似為高斯分布時,它的效果較好
缺點:
(1)在簇的平均值可被定義的情況下才能使用,可能不適用某些應用
(2)初始聚類中心的選擇比較敏感,可能只能收斂到局部最優解(改進:選取距離盡可能遠的點作為初始聚類 實現kmeans++)
(3)必須事先確定K的個數 (根據什么指標確定K)
(4)算法復雜度高O(nkt)
(5)不能發現非凸形狀的簇,或大小差別很大的簇
(6)對噪聲和孤立點數據敏感
4.注意事項
k-means初值的選擇:k-means是初值敏感的,可以通過根據到簇中心距離,給樣本點不同的隨機概率,從而避免初值敏感問題,kmeans++即此算法的實現
k值的選擇:業務上有具體的分類數最好;如果沒有,采用機器學習中的一些指標,比如損失函數最小,根據層次分類找到比較好的k值,聚類的輪廓系數等等。
異常點處理:去除異常點:離群值(3倍以上標准差)
缺失值處理:特殊值填充;或者以平均值(沒有數據傾斜)/中值(有數據傾斜)替換。
kmeans適用的場合:高斯分布
標准化:需要計算樣本間的距離;為了避免某一維度的取值范圍過大,故需要做標准化到0,1區間
后處理:具有最大SSE值的簇划分為兩個簇,具體實現只要將屬於最大簇的數據點用K-均值聚類,設定簇數k=2即可。
為了保證簇總數不變,可以合並最近的質心,或者合並兩個使得SSE值增幅最小的質心。
5.實現和具體例子
《機器學習實戰》中的k-mean和二分k-means以及基於地點坐標的聚類
混合高斯模型應用:OpenCV_基於混合高斯模型GMM的運動目標檢測;語音背景音提取
6.適用場合
支持大規模數據
特征維度
是否有 Online 算法:有,spark mllib的流式k均值
特征處理:支持數值型數據,類別型類型需要進行0-1編碼