Hierarchical Clustering

"Bottom-Up: Dari Banyak Jadi Satu"

1. Apa itu Agglomerative?

Bayangkan setiap data awalnya adalah negara sendiri-sendiri. Agglomerative Clustering mencaplok negara-negara bertetangga menjadi aliansi, aliansi kecil bergabung jadi aliansi besar, sampai akhirnya seluruh dunia bersatu dalam satu kekaisaran.

Ini disebut pendekatan Bottom-Up. Kebalikannya adalah Divisive (Top-Down).

2. Visualisasi: Dendrogram

A
B
E
C
D

A dan B dekat, jadi gabung duluan (Merah).
C dan D gabung belakangan (Biru).
Grup AB gabung dengan Grup CD+E di akhir (Ungu).

Potong Sesuai Selera: Kelebihan Hierarchical adalah kita bisa memotong pohon (cut) di ketinggian berapapun. Kalau potong di bawah, dapat banyak cluster kecil. Potong di atas, dapat sedikit cluster besar.

3. Cara Mengukur Jarak Antar Cluster

Kalau jarak antar titik bisa pakai Euclidean. Tapi gimana hitung jarak Cluster A (isi 5 mobil) ke Cluster B (isi 10 mobil)?

  • Single Linkage (Min): Jarak terdekat antara anggota A dan anggota B. (Rentan memanjang seperti ular).
  • Complete Linkage (Max): Jarak terjauh antara anggota A dan anggota B. (Cenderung bulat kompak).
  • Average Linkage: Rata-rata jarak semua pasangan.
  • Ward's Method: Meminimalkan variansi (paling populer & default di Python).

4. Implementasi Python (Scikit-Learn)

from sklearn.cluster import AgglomerativeClustering
import numpy as np

# 1. Data
X = np.array([[1, 2], [1, 4], [1, 0],
              [4, 2], [4, 4], [4, 0]])

# 2. Model Hierarchical
# n_clusters=2 (Kita minta potong pohon supaya jadi 2 grup)
# linkage='ward' (Meminimalkan varian)
clustering = AgglomerativeClustering(n_clusters=2, linkage='ward')

# 3. Training & Prediksi
clustering.fit_predict(X)

print("Label:", clustering.labels_)
# Output: [1 1 1 0 0 0]