k-means顧名思義k-均值,通過計算一類記錄的均值來代表該類,但是受異常值或極端值的影響比較大,這裡介紹另外一種算法k-medodis。看起來和k-means比較相似,但是k-medoids和k-means是有差別的,不一樣的地方在于中心點的選取,在k-means中,我們将中心點取為目前cluster中所有資料點的平均值,在 k-medoids算法中,我們将從目前cluster 中選取這樣一個點——它到其他所有(目前cluster中的)點的距離之和最小——作為中心點。
k-means算法的缺點:
産生類的大小相差不會很大,對于髒資料很敏感。
改進的算法:k-medoids方法。
這兒選取一個對象叫做mediod來代替上面的中心的作用,這樣的一個medoid就辨別了這個類。
k-medodis的具體流程如下:
1)任意選取k個對象作為medoids(o1,o2,…oi…ok)。
2)将餘下的對象分到各個類中去(根據與medoid最相近的原則);
3)對于每個類(oi)中,順序選取一個or,計算用or代替oi後的消耗—e(or)。選擇e最小的那個or來代替oi。這樣k個medoids就改變了。
4)重複2、3步直到k個medoids固定下來。
不容易受到那些由于誤差之類的原因産生的髒資料的影響,但計算量顯然要比k-means要大,一般隻适合小資料量。
<b>原文釋出時間為:2013-08-4</b>
<b></b>
<b>本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号</b>