K-Means

k-medoid 算法的輸出與 k-means 算法的輸出不同的示例

  • June 9, 2015

我了解 k medoid 和 k 均值之間的區別。但是你能給我一個小數據集的例子,其中 k medoid 輸出與 k 均值輸出不同。

k-medoid 基於 medoids(屬於數據集的一個點)通過最小化點與所選質心之間的絕對距離而不是最小化平方距離來計算。因此,它比 k-means 對噪聲和異常值更穩健。

這是一個帶有 2 個集群的簡單、人為的示例(忽略反轉的顏色) Kmeans vs. Kmedoids

如您所見,每組的中心點和質心(k-means)略有不同。您還應該注意,每次運行這些算法時,由於隨機起點和最小化算法的性質,您會得到略有不同的結果。這是另一個運行:

在此處輸入圖像描述

這是代碼:

library(cluster)
x <- rbind(matrix(rnorm(100, mean = 0.5, sd = 4.5), ncol = 2),
          matrix(rnorm(100, mean = 0.5, sd = 0.1), ncol = 2))
colnames(x) <- c("x", "y")
 
# using 2 clusters because we know the data comes from two groups
cl <- kmeans(x, 2) 
kclus <- pam(x,2)  

par(mfrow=c(1,2))
plot(x, col = kclus$clustering, main="Kmedoids Cluster")
points(kclus$medoids, col = 1:3, pch = 10, cex = 4)
plot(x, col = cl$cluster, main="Kmeans Cluster")
points(cl$centers, col = 1:3, pch = 10, cex = 4)

引用自:https://stats.stackexchange.com/questions/156210

comments powered by Disqus