Apa itu Hierarchical Clustering?

Hierarchical Clustering adalah metode clustering yang membangun hierarki cluster secara bertahap. Berbeda dengan K-Means, metode ini tidak memerlukan jumlah cluster di awal.

Dua Pendekatan Hierarchical Clustering

1. Agglomerative (Bottom-Up)

Dimulai dari setiap data sebagai cluster individual, lalu secara bertahap menggabungkan cluster terdekat hingga tersisa satu cluster besar.

2. Divisive (Top-Down)

Dimulai dari satu cluster besar berisi semua data, lalu secara bertahap membagi cluster hingga setiap data menjadi cluster sendiri.

Metode Linkage (Pengukuran Jarak Antar Cluster)

  • Single Linkage: Jarak minimum antar anggota cluster.
  • Complete Linkage: Jarak maksimum antar anggota cluster.
  • Average Linkage: Rata-rata jarak antar anggota cluster.
  • Ward's Method: Meminimalkan varians dalam cluster (paling umum).

Membaca Dendogram

Dendogram adalah visualisasi pohon yang menunjukkan proses penggabungan cluster. Sumbu Y menunjukkan jarak/dissimilarity. Potong dendogram secara horizontal untuk mendapatkan jumlah cluster yang diinginkan.

Implementasi Python

from scipy.cluster.hierarchy import dendrogram, linkage, fcluster from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt # Preprocessing scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # Hitung linkage matrix linkage_matrix = linkage(X_scaled, method='ward') # Plot Dendogram plt.figure(figsize=(12, 6)) dendrogram(linkage_matrix) plt.title('Dendogram Hierarchical Clustering') plt.xlabel('Sample Index') plt.ylabel('Distance') plt.show() # Potong dendogram untuk K cluster k = 3 clusters = fcluster(linkage_matrix, k, criterion='maxclust') print(f"Cluster labels: {clusters}")

Kapan Menggunakan Hierarchical vs K-Means?

  • Gunakan Hierarchical jika tidak tahu jumlah cluster, ingin visualisasi dendogram, atau data kecil-menengah.
  • Gunakan K-Means jika jumlah cluster sudah diketahui dan data besar (lebih cepat).