Algoritma K-Medoids: Contoh Perhitungan Manual Lengkap

Tutorial ini membahas algoritma K-Medoids dengan contoh perhitungan manual lengkap untuk melakukan clustering. Contoh menggunakan enam pelanggan dan dua atribut dengan jumlah cluster \(k=2\).

Berbeda dari K-Means yang menggunakan centroid berupa nilai rata-rata, K-Medoids menggunakan objek data aktual sebagai pusat cluster. Pada tutorial ini digunakan pendekatan PAM (Partitioning Around Medoids) dengan proses pemilihan medoid awal, assignment, perhitungan total cost, dan pertukaran atau swap medoid hingga tidak ada perbaikan cost.


Daftar Isi


Pengertian K-Medoids

K-Medoids adalah algoritma clustering partisional yang membagi data menjadi \(k\) cluster. Setiap cluster direpresentasikan oleh sebuah medoid.

Medoid adalah objek nyata dari dataset yang digunakan sebagai pusat representatif cluster. Anggota cluster ditentukan berdasarkan kedekatan terhadap medoid.

Salah satu algoritma K-Medoids yang dikenal luas adalah PAM (Partitioning Around Medoids). PAM mengevaluasi kemungkinan pertukaran antara medoid dan non-medoid untuk mencari konfigurasi dengan total jarak yang lebih kecil.

Perbedaan K-Means dan K-Medoids

Perbandingan K-Means dan K-Medoids.
Aspek K-Means K-Medoids
Pusat cluster Centroid atau rata-rata Medoid berupa objek aktual
Posisi pusat Tidak harus merupakan data asli Harus merupakan data asli
Pengaruh outlier Relatif lebih sensitif Umumnya lebih robust dibanding K-Means
Optimasi Memperbarui centroid Menguji pertukaran medoid
Biaya komputasi Umumnya lebih ringan PAM dapat lebih mahal pada dataset besar

Apa Itu Medoid?

Medoid adalah titik data yang digunakan untuk merepresentasikan sebuah cluster. Misalnya jika A1 menjadi medoid, maka koordinat pusat cluster benar-benar sama dengan data A1.

Ini berbeda dari centroid K-Means yang dihitung menggunakan rata-rata koordinat anggota cluster.

Rumus Jarak Euclidean

Tutorial ini menggunakan Euclidean Distance:

$$ d(x_i,x_j) = \sqrt{ \sum_{p=1}^{q} (x_{ip}-x_{jp})^2 } $$

Karena contoh menggunakan dua atribut:

$$ d(A_i,A_j) = \sqrt{ (X1_i-X1_j)^2 + (X2_i-X2_j)^2 } $$

Jika atribut memiliki skala yang sangat berbeda, data sebaiknya dinormalisasi atau distandardisasi terlebih dahulu agar satu atribut tidak mendominasi jarak.

#01 Menentukan Data dan Jumlah Cluster

Contoh menggunakan enam pelanggan dengan dua atribut yang telah berada pada skala yang sebanding.

Dataset contoh K-Medoids.
Kode Nama X1 - Skor Frekuensi Belanja X2 - Skor Nilai Transaksi
A1 Pelanggan A 2 2
A2 Pelanggan B 2 3
A3 Pelanggan C 3 2
A4 Pelanggan D 8 8
A5 Pelanggan E 8 9
A6 Pelanggan F 9 8

Jumlah cluster:

$$ k=2 $$

#02 Menentukan Medoid Awal

Untuk memperlihatkan proses swap dengan jelas, medoid awal pada contoh dipilih:

$$ M_1=A1=(2,2) $$

$$ M_2=A2=(2,3) $$

Jadi konfigurasi medoid awal adalah: A1 dan A2.

Pemilihan medoid awal dapat memengaruhi jalannya proses. Pada implementasi praktis, inisialisasi dapat menggunakan strategi tertentu atau beberapa kali percobaan untuk mengurangi risiko memperoleh solusi lokal yang kurang baik.

#03 Menghitung Matriks Jarak

Contoh Jarak A1 ke A2

$$ d(A1,A2) = \sqrt{ (2-2)^2 + (2-3)^2 } $$

$$ d(A1,A2) = 1 $$

Contoh Jarak A1 ke A4

$$ d(A1,A4) = \sqrt{ (2-8)^2 + (2-8)^2 } = 8.485281 $$

Matriks Euclidean Distance antardata.
Data A1 A2 A3 A4 A5 A6
A1 0 1 1 8.485281 9.219544 9.219544
A2 1 0 1.414214 7.81025 8.485281 8.602325
A3 1 1.414214 0 7.81025 8.602325 8.485281
A4 8.485281 7.81025 7.81025 0 1 1
A5 9.219544 8.485281 8.602325 1 0 1.414214
A6 9.219544 8.602325 8.485281 1 1.414214 0

#04 Mengalokasikan Data ke Medoid Terdekat

Setiap data dihitung jaraknya terhadap A1 dan A2. Data masuk ke cluster medoid dengan jarak paling kecil.

Contoh A3

Jarak A3 ke A1:

$$ d(A3,A1) = 1 $$

Jarak A3 ke A2:

$$ d(A3,A2) = 1.414214 $$

Karena 1 lebih kecil daripada 1.414214, A3 masuk ke cluster dengan medoid A1.

Contoh A5

$$ d(A5,A1) = 9.219544 $$

$$ d(A5,A2) = 8.485281 $$

A5 lebih dekat ke A2 pada konfigurasi awal.

Assignment awal terhadap medoid A1 dan A2.
Data d(Ai,A1) d(Ai,A2) Medoid Terdekat Jarak Minimum
A1 - Pelanggan A 0 1 A1 0
A2 - Pelanggan B 1 0 A2 0
A3 - Pelanggan C 1 1.414214 A1 1
A4 - Pelanggan D 8.485281 7.81025 A2 7.81025
A5 - Pelanggan E 9.219544 8.485281 A2 8.485281
A6 - Pelanggan F 9.219544 8.602325 A2 8.602325

#05 Menghitung Total Cost Awal

Total cost adalah jumlah jarak minimum seluruh data terhadap medoid cluster masing-masing.

$$ Cost_{awal} = 0 + 0 + 1 + 7.81025 + 8.485281 + 8.602325 $$

$$ Cost_{awal} = 25.897856 $$

Nilai ini menjadi acuan untuk menilai apakah pertukaran medoid menghasilkan cluster yang lebih baik.

#06 Melakukan Swap Medoid

PAM mencoba menukar satu medoid dengan satu data non-medoid. Konfigurasi yang menghasilkan total cost lebih kecil dianggap sebagai perbaikan.

Contoh Kandidat Terbaik Iterasi 1

Pada iterasi pertama, kandidat terbaik adalah menukar:

A2 → A4

Medoid baru:

A1 dan A4

Total cost kandidat:

$$ Cost_{baru} = 4 $$

Perubahan cost:

$$ \Delta = Cost_{baru} - Cost_{lama} $$

$$ \Delta = 4 - 25.897856 = -21.897856 $$

Karena \(\Delta < 0\), swap diterima.

Evaluasi kandidat swap pada iterasi pertama.
Medoid Keluar Non-Medoid Masuk Konfigurasi Medoid Total Cost Δ terhadap Cost Awal
A2 A4 A1, A4 4 -21.897856
A2 A5 A1, A5 4.414214 -21.483643
A2 A6 A1, A6 4.414214 -21.483643
A1 A4 A2, A4 4.414214 -21.483643
A1 A5 A2, A5 4.828427 -21.069429
A1 A6 A2, A6 4.828427 -21.069429
A1 A3 A2, A3 25.780812 -0.117044
A2 A3 A1, A3 25.897856 0

#07 Menghitung Assignment Setelah Swap

Setelah swap terbaik pada iterasi pertama, medoid menjadi A1 dan A4. Seluruh data dihitung kembali terhadap medoid baru.

Contoh A5

$$ d(A5,A1) = 9.219544 $$

$$ d(A5,A4) = 1 $$

A5 masuk ke cluster A4 .

Assignment setelah swap terbaik iterasi pertama.
Data d(Ai,A1) d(Ai,A4) Cluster Jarak Minimum
A1 - Pelanggan A 0 8.485281 A1 0
A2 - Pelanggan B 1 7.81025 A1 1
A3 - Pelanggan C 1 7.81025 A1 1
A4 - Pelanggan D 8.485281 0 A4 0
A5 - Pelanggan E 9.219544 1 A4 1
A6 - Pelanggan F 9.219544 1 A4 1

Total cost setelah swap:

$$ Cost = 4 $$

#08 Melanjutkan Iterasi hingga Konvergen

Proses swap diulangi menggunakan medoid terbaru. Algoritma berhenti jika tidak ada kandidat pertukaran yang menghasilkan total cost lebih kecil.

Iterasi Terakhir

Medoid sebelum evaluasi: A1 dan A4 .

Cost saat ini:

$$ Cost = 4 $$

Kandidat swap terbaik yang tersisa memiliki cost:

$$ Cost_{candidate} = 4.414214 $$

Karena tidak ada kandidat dengan cost lebih kecil, proses dinyatakan konvergen.

Ringkasan iterasi K-Medoids.
Iterasi Medoid Saat Ini Cost Saat Ini Kandidat Swap Terbaik Cost Kandidat Keputusan
1 A1, A2 25.897856 A2 → A4 4 Swap diterima
2 A1, A4 4 A4 → A5 4.414214 Berhenti

#09 Hasil Cluster Akhir

Medoid akhir:

A1 dan A4 .

Total cost akhir:

$$ Cost_{akhir} = 4 $$

Penurunan cost:

$$ 25.897856 - 4 = 21.897856 $$

atau sekitar:

$$ 84.55\% $$

Hasil assignment cluster akhir K-Medoids.
Data X1 X2 Medoid / Cluster Jarak ke Medoid
A1 - Pelanggan A 2 2 A1 0
A2 - Pelanggan B 2 3 A1 1
A3 - Pelanggan C 3 2 A1 1
A4 - Pelanggan D 8 8 A4 0
A5 - Pelanggan E 8 9 A4 1
A6 - Pelanggan F 9 8 A4 1
Anggota setiap cluster akhir.
Cluster Medoid Anggota
Cluster 1 A1 - Pelanggan A A1, A2, A3
Cluster 2 A4 - Pelanggan D A4, A5, A6

Interpretasi Hasil K-Medoids

Pada dataset contoh, cluster akhir memisahkan data menjadi dua kelompok yang cukup jelas.

Cluster dengan medoid A1 berisi: A1, A2, A3.

Cluster dengan medoid A4 berisi: A4, A5, A6.

Medoid dapat digunakan sebagai contoh anggota yang paling representatif terhadap kelompoknya pada konfigurasi hasil clustering.

Namun, makna bisnis dari setiap cluster tetap harus ditentukan berdasarkan atribut asli dan konteks data. Algoritma hanya membentuk kelompok berdasarkan ukuran jarak yang digunakan.

Kelebihan dan Kekurangan K-Medoids

Kelebihan K-Medoids

  • Pusat cluster merupakan data aktual sehingga mudah diinterpretasikan.
  • Umumnya lebih tahan terhadap outlier dibanding K-Means.
  • Dapat digunakan dengan berbagai ukuran dissimilarity selama definisinya sesuai.
  • Cocok ketika representasi cluster harus berupa objek nyata.

Kekurangan K-Medoids

  • PAM dapat memiliki biaya komputasi lebih tinggi dibanding K-Means.
  • Jumlah cluster \(k\) harus ditentukan terlebih dahulu.
  • Hasil dapat dipengaruhi pemilihan medoid awal dan solusi lokal.
  • Penggunaan distance tetap sensitif terhadap skala atribut.
  • Dataset sangat besar memerlukan pendekatan yang lebih efisien daripada evaluasi swap PAM secara penuh.

Ringkasan

K-Medoids membagi data menjadi beberapa cluster dengan menggunakan objek aktual sebagai pusat cluster.

Pada contoh ini digunakan \(k=2\) dengan medoid awal A1 dan A2. Total cost awal adalah 25.897856.

Setelah proses swap, medoid akhir menjadi A1 dan A4 dengan total cost 4.

Algoritma berhenti ketika tidak ada pertukaran medoid dan non-medoid yang mampu menurunkan total cost.

FAQ K-Medoids

Apa itu K-Medoids?

K-Medoids adalah algoritma clustering yang menggunakan data aktual sebagai pusat atau medoid setiap cluster.

Apa itu medoid?

Medoid adalah objek data yang dipilih untuk merepresentasikan sebuah cluster.

Apa perbedaan medoid dan centroid?

Medoid merupakan data aktual dari dataset, sedangkan centroid adalah titik rata-rata yang tidak harus terdapat pada dataset.

Apa itu PAM?

PAM adalah Partitioning Around Medoids, salah satu algoritma untuk melakukan K-Medoids dengan mengevaluasi pertukaran medoid dan non-medoid.

Bagaimana menentukan cluster suatu data?

Data ditempatkan pada cluster dengan medoid yang memiliki jarak paling kecil terhadap data tersebut.

Apa yang dimaksud total cost?

Total cost adalah jumlah jarak setiap data terhadap medoid cluster terdekatnya.

Kapan swap medoid diterima?

Pada pendekatan PAM yang digunakan dalam tutorial ini, swap diterima jika menghasilkan total cost yang lebih kecil.

Kapan algoritma berhenti?

Algoritma berhenti ketika tidak ada kandidat swap yang mampu menurunkan total cost.

Apakah K-Medoids tahan terhadap outlier?

K-Medoids umumnya lebih robust terhadap outlier dibanding K-Means karena pusat cluster harus berupa objek aktual dan tidak dihitung sebagai rata-rata semua anggota.

Apakah K-Medoids harus menggunakan Euclidean Distance?

Tidak. Ukuran dissimilarity dapat dipilih sesuai karakter data. Tutorial ini menggunakan Euclidean Distance agar perhitungan manual mudah diikuti.

Apakah data perlu dinormalisasi?

Jika atribut memiliki skala yang berbeda jauh, normalisasi atau standardisasi sangat disarankan sebelum menghitung jarak.

Bagaimana menentukan nilai k?

Nilai k dapat ditentukan berdasarkan kebutuhan analisis atau dibantu evaluasi clustering seperti silhouette score dan pendekatan validasi cluster lainnya.

Apakah K-Medoids termasuk supervised learning?

Tidak. K-Medoids termasuk unsupervised learning karena proses clustering tidak membutuhkan label kelas target.

Kapan K-Medoids cocok digunakan?

K-Medoids cocok ketika dibutuhkan clustering dengan pusat yang merupakan objek nyata dan ketika robustness terhadap data ekstrem lebih penting dibanding efisiensi K-Means.


Referensi

  1. Kaufman, L. & Rousseeuw, P. J. (1990). Finding Groups in Data: An Introduction to Cluster Analysis. Wiley.
  2. Park, H. S. & Jun, C. H. (2009). A Simple and Fast Algorithm for K-Medoids Clustering. Expert Systems with Applications, 36(2), 3336–3341.
  3. Han, J., Kamber, M. & Pei, J. (2011). Data Mining: Concepts and Techniques, Third Edition. Morgan Kaufmann.

Source Code K-Medoids

Berikut adalah beberapa source code yang menggunakan algoritma K-Medoids untuk clustering.

Ada yang Ditanyakan?

Jika anda masih ada kesulitan atau kekeliruan tentang penjelasan metode di atas, bisa menghubungi kami lewat WA/Email sesuai halaman Kontak.

Jika ingin memiliki file excel dari metode di atas bisa melihat cara download di halaman Download.

Jika ingin memiliki source code dari metode di atas, baik berbasis web maupun desktop bisa melihat daftar harga donasi di halaman Daftar Source Code.

Donasi ini digunakan oleh penulis untuk membayar server dan membeli kopi sembari membuat tutorial Metode/Algoritma lainnya :).