BIRCH

"Juaranya Big Data"

1. Apa itu BIRCH?

Masalah utama clustering lain (K-Means, Hierarchical) adalah mereka butuh memuat SEMUA DATA ke memori (RAM). Kalau datanya ada 1 Milyar baris? RAM meledak.

BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) menyelesaikan ini dengan cara membaca data sekali jalan (single pass) dan menyimpannya dalam struktur ringkas bernama CF Tree (Clustering Feature Tree).

2. Visualisasi: CF Tree

Root
Node A
Node B
CF1
CF2
CF3

Data asli dibuang, diganti dengan ringkasan statistik (CF). Satu daun (Leaf Node) bisa mewakili ribuan titik data yang berdekatan!

3. Matematika: Clustering Feature (CF)

Setiap node tidak menyimpan data mentah, tapi menyimpan 3 angka ajaib (CF Vector):

CF = (N, LS, SS)
  • N: Jumlah data point dalam cluster kecil ini.
  • LS (Linear Sum): Jumlah total koordinat vector ($\sum X$).
  • SS (Squared Sum): Jumlah kuadrat koordinat vector ($\sum X^2$).

Dari 3 angka ini, kita bisa menghitung Centroid, Radius, dan Diameter tanpa perlu tahu data aslinya lagi! Hemat memori banget.

4. Implementasi Python (Scikit-Learn)

from sklearn.cluster import Birch
import numpy as np

# 1. Data Dummy (2 kelompok)
X = [[0, 1], [0.3, 1], [-0.3, 1], [0, -1], [0.3, -1], [-0.3, -1]]

# 2. Model BIRCH
# threshold: Radius maksimum sebua CF (sub-cluster)
# branching_factor: Maksimum anak per node di pohon
brc = Birch(n_clusters=2, threshold=0.5, branching_factor=50)

# 3. Training
brc.fit(X)

# 4. Prediksi
print("Label:", brc.predict(X))
# Output: [0 0 0 1 1 1]

# 5. Cek Sub-clusters (Centroids of the leaves)
print("Sub-cluster centers:", brc.subcluster_centers_)