記得前一篇博文寫過關(guān)于K-MEANS的內(nèi)容,K-MEANS顧名思義K-均值,通過計算一類記錄的均值來代表該類,但是受異常值或極端值的影響比較大,這里介紹另外一種算法K-medodis。
看起來和K-means比較相似,但是K-medoids和K-means是有區(qū)別的,不一樣的地方在于中心點的選取,在K-means中,我們將中心點取為當(dāng)前cluster中所有數(shù)據(jù)點的平均值,在K-medoids算法中,我們將從當(dāng)前cluster中選取這樣一個點——它到其他所有(當(dāng)前cluster中的)點的距離之和最小——作為中心點。
K-MEANS算法的缺點:
產(chǎn)生類的大小相差不會很大,對于臟數(shù)據(jù)很敏感。
改進(jìn)的算法:K-medoids方法。
這兒選取一個對象叫做mediod來代替上面的中心的作用,這樣的一個medoid就標(biāo)識了這個類。
K-MEDODIS的具體流程如下:
1)任意選取K個對象作為medoids(O1,O2,…Oi…Ok)。
2)將余下的對象分到各個類中去(根據(jù)與medoid最相近的原則);
3)對于每個類(Oi)中,順序選取一個Or,計算用Or代替Oi后的消耗—E(Or)。選擇E最小的那個Or來代替Oi。這樣K個medoids就改變了。
4)重復(fù)2、3步直到K個medoids固定下來?! ?br>不容易受到那些由于誤差之類的原因產(chǎn)生的臟數(shù)據(jù)的影響,但計算量顯然要比K-means要大,一般只適合小數(shù)據(jù)量。