Clustering

Project Date : 14 November 2023

Image

Project Name:

Clustering Menggunakan Algoritma K-Medoids

Technology Project:
Python dan Google Colaboratory

Pengantar

Clustering adalah metode unsupervised learning dalam machine learning yang bertujuan untuk mengelompokkan data ke dalam beberapa grup atau cluster, sehingga data dalam satu grup memiliki kemiripan yang tinggi dibandingkan dengan data dalam grup lain. Salah satu algoritma clustering yang populer adalah K-Medoids.

K-Medoids

K-Medoids adalah algoritma clustering yang mirip dengan K-Means, tetapi menggunakan medoid (salah satu titik data dalam cluster) sebagai pusat cluster, bukan mean (rata-rata) seperti pada K-Means. Medoid adalah titik dalam cluster yang memiliki biaya ketidakmiripan total terkecil terhadap semua titik lain di dalam cluster.

Langkah-langkah Algoritma K-Medoids

  1. Inisialisasi
    • Pilih 𝑘 medoid awal secara acak dari himpunan data.
  2. Assignment (Penugasan):
    • Assign setiap titik data ke medoid terdekat berdasarkan jarak ketidakmiripan (misalnya, jarak Euclidean).
  3. Update (Pembaruan):
    • Untuk setiap cluster, pilih titik data yang meminimalkan total ketidakmiripan sebagai medoid baru. Total ketidakmiripan dihitung sebagai jumlah jarak dari titik tersebut ke semua titik lain di cluster.
  4. Iterasi:
    • Ulangi langkah 2 dan 3 sampai medoid tidak berubah atau perubahan sangat kecil (konvergensi).
  5. Output
    • Setelah iterasi selesai, hasil akhirnya adalah 𝑘 cluster dengan masing-masing medoid sebagai pusat cluster.

Keunggulan

  • Robust terhadap outliers: Karena menggunakan medoid, K-Medoids lebih tahan terhadap outliers dibandingkan K-Means.
  • Efektif untuk data diskrit: K-Medoids dapat digunakan dengan berbagai jenis jarak ketidakmiripan, bukan hanya jarak Euclidean, sehingga cocok untuk data diskrit.

Kelemahan

  • Komputasi yang lebih mahal: Proses pembaruan medoid memerlukan perhitungan jarak untuk setiap pasangan titik data dalam cluster, sehingga lebih lambat dibandingkan K-Means.
  • Memerlukan parameter 𝑘: Seperti K-Means, K-Medoids juga memerlukan jumlah cluster 𝑘 yang harus ditentukan sebelumnya.

Contoh Implementasi Algoritma K-Medoids

Python

    import numpy as np
from sklearn_extra.cluster import KMedoids
import matplotlib.pyplot as plt
        
# Contoh data
data = np.array([
    [1, 2], [2, 3], [3, 4],
    [8, 7], [7, 8], [8, 9],
    [25, 30], [24, 27], [23, 29]
    ])
        
# Inisialisasi dan pelatihan model K-Medoids
kmedoids = KMedoids(n_clusters=3, random_state=42).fit(data)
        
# Mendapatkan label cluster dan medoids
labels = kmedoids.labels_
medoids = kmedoids.cluster_centers_
        
# Plot hasil clustering
plt.scatter(data[:, 0], data[:, 1], c=labels, s=50, cmap='viridis')
plt.scatter(medoids[:, 0], medoids[:, 1], c='red', s=200, alpha=0.5)
plt.title('Clustering Menggunakan Algoritma K-Medoids')
plt.show()

My Jupyter Notebook