Contoh di mana output dari algoritma k-medoid berbeda dari output dari algoritma k-means


11

Saya mengerti perbedaan antara k medoid dan k berarti. Tapi bisakah Anda memberi saya contoh dengan set data kecil di mana output medoid k berbeda dari output k means.

Jawaban:


14

k-medoid didasarkan pada medoid (yang merupakan titik yang termasuk dalam dataset) yang menghitung dengan meminimalkan jarak absolut antara titik dan centroid yang dipilih, daripada meminimalkan jarak kuadrat. Akibatnya, lebih kuat untuk noise dan outlier daripada k-means.

Berikut adalah contoh sederhana dan dibikin dengan 2 kelompok (abaikan warna yang dibalik) Kmeans vs Kmedoids

Seperti yang Anda lihat, medoid dan centroid (k-means) sedikit berbeda di setiap kelompok. Anda juga harus mencatat bahwa setiap kali Anda menjalankan algoritma ini, karena titik awal acak dan sifat algoritma minimisasi, Anda akan mendapatkan hasil yang sedikit berbeda. Ini adalah langkah lain:

masukkan deskripsi gambar di sini

Dan ini kodenya:

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)


1
@ frc, jika menurut Anda jawaban seseorang salah, jangan edit untuk memperbaikinya. Anda dapat meninggalkan komentar (setelah perwakilan Anda> 50), & / atau downvote. Pilihan terbaik Anda adalah memposting jawaban Anda sendiri dengan apa yang Anda yakini sebagai informasi yang benar (lih, di sini ).
gung - Reinstate Monica

2
K-medoid meminimalkan jarak yang dipilih secara sewenang-wenang (tidak harus jarak absolut) antara elemen berkerumun dan medoid. Sebenarnya pammetode (contoh implementasi K-medoid di R) yang digunakan di atas, secara default menggunakan jarak Euclidean sebagai metrik. K-means selalu menggunakan Euclidean kuadrat. Medoid dalam K-medoid dipilih dari elemen cluster, bukan dari ruang poin keseluruhan sebagai centroid dalam K-means.
hannafrc

1
Saya tidak memiliki reputasi yang cukup untuk berkomentar, tetapi ingin menyebutkan bahwa ada kesalahan dalam plot jawaban Ilanman: ia menjalankan seluruh kode, sehingga datanya dimodifikasi. Jika Anda hanya menjalankan bagian pengelompokan kode, klusternya cukup stabil, lebih stabil untuk PAM daripada dengan k-means.
Julien Colomb

6

Seorang medoid harus menjadi anggota set, sebuah centroid tidak.

Centroid biasanya dibahas dalam konteks benda padat dan kontinu, tetapi tidak ada alasan untuk percaya bahwa ekstensi ke sampel diskrit akan membutuhkan centroid untuk menjadi anggota himpunan asli.


1

Algoritma k-means dan k-medoids memecah dataset menjadi kelompok k. Juga, mereka berdua mencoba untuk meminimalkan jarak antara titik-titik dari cluster yang sama dan titik tertentu yang merupakan pusat dari cluster itu. Berbeda dengan algoritma k-means, algoritma k-medoid memilih poin sebagai pusat yang dimiliki dastaset. Implementasi paling umum dari algoritma klaster k-medoid adalah algoritma Partitioning Around Medoids (PAM). Algoritma PAM menggunakan pencarian serakah yang mungkin tidak menemukan solusi optimal global. Medoid lebih kuat untuk pencilan daripada centroid, tetapi mereka membutuhkan lebih banyak perhitungan untuk data dimensi tinggi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.