Câu trả lời:
k-medoid dựa trên medoid (là một điểm thuộc bộ dữ liệu) tính toán bằng cách giảm thiểu khoảng cách tuyệt đối giữa các điểm và tâm được chọn, thay vì thu nhỏ khoảng cách vuông. Kết quả là, tiếng ồn và tiếng ồn mạnh hơn phương tiện k.
Dưới đây là một ví dụ đơn giản, dễ hiểu với 2 cụm (bỏ qua các màu đảo ngược)
Như bạn có thể thấy, các medoid và centroid (của k-mean) hơi khác nhau trong mỗi nhóm. Ngoài ra, bạn nên lưu ý rằng mỗi khi bạn chạy các thuật toán này, vì các điểm bắt đầu ngẫu nhiên và bản chất của thuật toán tối thiểu hóa, bạn sẽ nhận được kết quả hơi khác nhau. Đây là một hoạt động khác:
Và đây là mã:
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)
pam
phương thức (một ví dụ triển khai K-medoid trong R) được sử dụng ở trên, theo mặc định sử dụng khoảng cách Euclide làm số liệu. K-nghĩa luôn luôn sử dụng Euclide bình phương. Các medoid trong K-medoid được chọn trong số các thành phần của cụm, không nằm ngoài toàn bộ không gian điểm như centroid trong K-mean.
Cả hai thuật toán k-mean và k-medoid đều chia bộ dữ liệu thành các nhóm k. Ngoài ra, cả hai đều cố gắng giảm thiểu khoảng cách giữa các điểm của cùng một cụm và một điểm cụ thể là trung tâm của cụm đó. Trái ngược với thuật toán k-mean, thuật toán k-medoid chọn các điểm làm trung tâm thuộc về dastaset. Việc triển khai phổ biến nhất của thuật toán phân cụm k-medoid là thuật toán phân vùng xung quanh Medoids (PAM). Thuật toán PAM sử dụng một tìm kiếm tham lam có thể không tìm thấy giải pháp tối ưu toàn cầu. Medoids mạnh hơn so với centroid, nhưng chúng cần tính toán nhiều hơn cho dữ liệu chiều cao.