K-means聚類算法

簡介

K-means算法是聚類算法中最簡單的一種,但是里面包含的思想?yún)s不一般。K-means屬于無監(jiān)督學習,以往的回歸、樸素貝葉斯、SVM等都是有類別標簽y的,也就是說樣例中已經(jīng)給出了樣例的分類。而聚類的樣本中卻沒有給定y,只有特征x,假設宇宙星空中的點集可以表現(xiàn)成(X,Y,Z),聚類的目的就是為X找到潛在的Y,并將同類別的Y放在一起

算法描述

算法具體過程
  1. 隨機選取K個點作為質點
  2. 對于每一個樣本點X,將其歸類為距離質心點最近的類別
  3. 更新每個類別的質心點為隸屬于該類別所有點的平均值
  4. 重復步驟二三,直至質心不變或變化很小
聚類效果

問題

1.K-means算法的第一個問題就是如何保證收斂,因為前面算法的結束條件就是收斂,下面我們來描述一下:
定義畸變函數(shù)J(c,u) ,表示每個樣本點到其質心的距離平方和

J函數(shù)

此時我們的重點是研究如何研究是J函數(shù)最小,假設J函數(shù)沒有函數(shù)達到最小值,那樣我們就可以先固定每個類的質心,調整每個樣例所屬的類別來讓J函數(shù)減小,或者固定類別,調整質心也可以使J減小。這兩個過程就是內循環(huán)中使J函數(shù)減小的過程,當J函數(shù)最小時,u,c也同時收斂。

由于畸變函數(shù)J是非凸函數(shù),意味著我們不能保證取得的最小值是全局最小值,也就是說k-means對質心初始位置的選取比較感冒,但一般情況下k-means達到的局部最優(yōu)已經(jīng)滿足需求。但如果你怕陷入局部最優(yōu),那么可以選取不同的初始值跑多遍k-means,然后取其中最小的J對應的u

凸優(yōu)化有個非常重要的定理,即任何局部最優(yōu)解即為全局最優(yōu)解。

EM思想:這里只是指出EM的思想,E步就是估計隱含類別y的期望值,M步調整其他參數(shù)使得在給定類別y的情況下,極大似然估計P(x,y)能夠達到極大值。然后在其他參數(shù)確定的情況下,重新估計y,周而復始,直至收斂。其實總體還是一個迭代優(yōu)化的過程。

缺點:K-means算法有兩個缺點,第一、該方法對K個質心初始位置的選擇比較感冒,一般而言k-means算法只能達到局部最優(yōu),因此K個質心初始位置不同,則達到的局部最優(yōu)解也會不一樣;第二、K值一般要根據(jù)先驗知識,事先給定。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容