1、kmeans:k均值
原理:給定訓(xùn)練樣本D,假設(shè)將這個樣本劃分成k個類硬爆,那么就有k個簇,用C表示擎鸠。算法的均方誤差為:
其中:u表示第i個簇的均值
E從某種程度上刻畫了簇內(nèi)樣本圍繞著簇均值向量的緊密程度缀磕,E越小表示簇內(nèi)的樣本相似性越高。
算法流程偽代碼如下:
2劣光、舉例
我們看一下西瓜書上的例子袜蚕,就能對上面的理論基本理解了~~~
我們現(xiàn)在有30個訓(xùn)練樣本,每個樣本含有兩個屬性绢涡。由于聚類算法屬于無監(jiān)督學(xué)習(xí)牲剃,所以這里我們不需要label。
(1)假設(shè)聚類簇數(shù)為3垂寥,算法的開始我們要隨機的選3個樣本作為初始的均值向量颠黎,即:
(2)首先考察第一個樣本x1=(0.697另锋,0.460),它與上面三個均值向量的距離分別是:0.369狭归,0.506夭坪,0.166,因此將x1劃分為第三個簇过椎。類似的室梅,將剩下的數(shù)據(jù)集一次考察,得到三個簇為:
(3)于是疚宇,求這三個簇新的均值向量亡鼠,可以得到:
(4)重復(fù)上述的步驟(2)和(3),直到迭代的結(jié)果相同敷待,也就是求到的均值不再發(fā)生變化间涵。
最后得到的結(jié)果圖:
3、kmeans優(yōu)缺點
優(yōu)點:
(1)計算時間短榜揖,速度快
(2)容易解釋和理解
(3)聚類效果不錯
缺點:
(1)對異常值敏感
(2)需要提前確定k值
(3)需要樣本存在均值