簡單對比一下這兩者的區(qū)別。兩者的主要區(qū)別主要在質(zhì)心的選擇中镰官,k-means是樣本點(diǎn)均值椭住,k-medoids則是從樣本點(diǎn)中選取。
首先給出兩者的算法實(shí)現(xiàn)步驟:
K-means
- 隨機(jī)選取K個(gè)質(zhì)心的值
- 計(jì)算各個(gè)點(diǎn)到質(zhì)心的距離
- 將點(diǎn)的類劃分為離他最近的質(zhì)心牧挣,形成K個(gè)cluster
- 根據(jù)分類好的cluster急前,在每個(gè)cluster內(nèi)重新計(jì)算質(zhì)心(平均每個(gè)點(diǎn)的值)
- 重復(fù)迭代2-4步直到滿足迭代次數(shù)或誤差小于指定的值
K-medoids
- 隨機(jī)選取K個(gè)質(zhì)心的值 (質(zhì)心必須是某些樣本點(diǎn)的值,而不是任意值)
- 計(jì)算各個(gè)點(diǎn)到質(zhì)心的距離
- 將點(diǎn)的類劃分為離他最近的質(zhì)心浸踩,形成K個(gè)cluster
- 根據(jù)分類好的cluster叔汁,在每個(gè)cluster內(nèi)重新計(jì)算質(zhì)心:
4.1 計(jì)算cluster內(nèi)所有樣本點(diǎn)到其中一個(gè)樣本點(diǎn)的曼哈頓距離和(絕對誤差)
4.2 選出使cluster絕對誤差最小的樣本點(diǎn)作為質(zhì)心 - 重復(fù)迭代2-4步直到滿足迭代次數(shù)或誤差小于指定的值
以上就可以看出兩者之間的區(qū)別:
k-means的質(zhì)心是各個(gè)樣本點(diǎn)的平均,可能是樣本點(diǎn)中不存在的點(diǎn)。
k-medoids的質(zhì)心一定是某個(gè)樣本點(diǎn)的值据块。
這個(gè)不同使他們具有不同的優(yōu)缺點(diǎn)
- k-medoids的運(yùn)行速度較慢码邻,計(jì)算質(zhì)心的步驟時(shí)間復(fù)雜度是O(n^2),因?yàn)樗仨氂?jì)算任意兩點(diǎn)之間的距離另假。而k-means只需平均即可像屋。
2、k-medoids對噪聲魯棒性比較好边篮。例:當(dāng)一個(gè)cluster樣本點(diǎn)只有少數(shù)幾個(gè)己莺,如(1,1)(1,2)(2,1)(100,100)。其中(100,100)是噪聲戈轿。如果按照k-means質(zhì)心大致會(huì)處在(1,1)(100,100)中間凌受,這顯然不是我們想要的。這時(shí)k-medoids就可以避免這種情況思杯,他會(huì)在(1,1)(1,2)(2,1)(100,100)中選出一個(gè)樣本點(diǎn)使cluster的絕對誤差最小胜蛉,計(jì)算可知一定會(huì)在前三個(gè)點(diǎn)中選取。