一、定義
kmeans即k均值算法枚驻。k均值聚類是最著名的劃分聚類算法,由于簡潔和效率使得他成為所有聚類算法中最廣泛使用的株旷。給定一個數(shù)據(jù)點(diǎn)集合和需要的聚類數(shù)目k再登,k由用戶指定,k均值算法根據(jù)某個距離函數(shù)反復(fù)把數(shù)據(jù)分入k個聚類中晾剖。
二锉矢、算法過程
簡易動畫過程在這,傳送門
第一步齿尽,輸入k的值沽损,即我們希望將數(shù)據(jù)集經(jīng)過聚類得到k類,分為k組
第二步循头,從數(shù)據(jù)集中隨機(jī)選擇k個數(shù)據(jù)點(diǎn)作為初識的聚類中心(質(zhì)心绵估,Centroid)
第三步,對集合中每一個數(shù)據(jù)點(diǎn)卡骂,計(jì)算與每一個聚類中心的距離国裳,離哪個中心距離近,就標(biāo)記為哪個中心偿警。待分配完全時躏救,就有第一次分類。
第四步螟蒸,每一個分類根據(jù)現(xiàn)有的數(shù)據(jù)重新計(jì)算盒使,并重新選取每個分類的中心(質(zhì)心)
第五至N步,重復(fù)第三至四步七嫌,直至符合條件結(jié)束迭代步驟少办。條件是如果新中心和舊中心之間的距離小于某一個設(shè)置的閾值(表示重新計(jì)算的質(zhì)心的位置變化不大,趨于穩(wěn)定诵原,或者說收斂)英妓,可以認(rèn)為我們進(jìn)行的聚類已經(jīng)達(dá)到期望的結(jié)果,終止迭代過程绍赛。
該算法的核心就是選擇合適的k值蔓纠,不同的k值出來有不同的結(jié)果。
三吗蚌、如何選擇合適的K值腿倚?
1、手肘法
手肘法的核心指標(biāo)是SSE(sum of the squared errors蚯妇,誤差平方和)敷燎,
其中暂筝,Ci是第i個簇,p是Ci中的樣本點(diǎn)硬贯,mi是Ci的質(zhì)心(Ci中所有樣本的均值)焕襟,SSE是所有樣本的聚類誤差,代表了聚類效果的好壞饭豹。
手肘法的核心思想是:隨著聚類數(shù)k的增大鸵赖,樣本劃分會更加精細(xì),每個簇的聚合程度會逐漸提高墨状,那么誤差平方和SSE自然會逐漸變小卫漫。并且,當(dāng)k小于真實(shí)聚類數(shù)時肾砂,由于k的增大會大幅增加每個簇的聚合程度列赎,故SSE的下降幅度會很大,而當(dāng)k到達(dá)真實(shí)聚類數(shù)時镐确,再增加k所得到的聚合程度回報(bào)會迅速變小包吝,所以SSE的下降幅度會驟減,然后隨著k值的繼續(xù)增大而趨于平緩源葫,也就是說SSE和k的關(guān)系圖是一個手肘的形狀诗越,而這個肘部對應(yīng)的k值就是數(shù)據(jù)的真實(shí)聚類數(shù)。當(dāng)然息堂,這也是該方法被稱為手肘法的原因嚷狞。
2、輪廓系數(shù)法
該方法的核心指標(biāo)是輪廓系數(shù)(Silhouette Coefficient)荣堰,某個樣本點(diǎn)Xi的輪廓系數(shù)定義如下:
S=(b-a)/max(a,b)
其中床未,a是Xi與同簇的其他樣本的平均距離,稱為凝聚度振坚,b是Xi與最近簇中所有樣本的平均距離薇搁,稱為分離度。而最近簇的定義是
其中p是某個簇Ck中的樣本渡八。事實(shí)上啃洋,簡單點(diǎn)講,就是用Xi到某個簇所有樣本平均距離作為衡量該點(diǎn)到該簇的距離后屎鳍,選擇離Xi最近的一個簇作為最近簇宏娄。
求出所有樣本的輪廓系數(shù)后再求平均值就得到了平均輪廓系數(shù)。平均輪廓系數(shù)的取值范圍為[-1,1]逮壁,且簇內(nèi)樣本的距離越近绝编,簇間樣本距離越遠(yuǎn),平均輪廓系數(shù)越大,聚類效果越好十饥。那么,很自然地祖乳,平均輪廓系數(shù)最大的k便是最佳聚類數(shù)逗堵。
四、優(yōu)缺點(diǎn)
1眷昆、優(yōu)點(diǎn)
(1)容易理解蜒秤,聚類效果不錯,雖然是局部最優(yōu)亚斋, 但往往局部最優(yōu)就夠了
(2)處理大數(shù)據(jù)集的時候作媚,該算法可以保證較好的伸縮性
(3)當(dāng)簇近似高斯分布的時候,效果非常不錯
(4)算法復(fù)雜度低
2帅刊、缺點(diǎn)
(1)K 值需要人為設(shè)定纸泡,不同 K 值得到的結(jié)果不一樣
(2)對初始的簇中心敏感,不同選取方式會得到不同結(jié)果
(3)對異常值敏感
(4)樣本只能歸為一類赖瞒,不適合多分類任務(wù)
(5)不適合太離散的分類女揭、樣本類別不平衡的分類、非凸形狀的分類