Apa itu DBSCAN?

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) adalah algoritma clustering berbasis kepadatan. Kelebihannya: tidak perlu menentukan K di awal, dapat menemukan cluster berbentuk arbitrer, dan otomatis mendeteksi outlier (noise).

Parameter Utama DBSCAN

  • eps (ε): Radius lingkungan dari suatu titik.
  • min_samples: Jumlah minimum titik dalam radius eps untuk dianggap sebagai core point.

Jenis Titik dalam DBSCAN

  • Core Point: Titik dengan minimal min_samples tetangga dalam radius eps.
  • Border Point: Titik dalam radius eps dari core point, tapi tidak memenuhi min_samples.
  • Noise Point (Outlier): Titik yang bukan core maupun border.

Implementasi Python

from sklearn.cluster import DBSCAN from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt # Preprocessing scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # DBSCAN dbscan = DBSCAN(eps=0.5, min_samples=5) clusters = dbscan.fit_predict(X_scaled) # Hitung jumlah cluster (exclude noise yang label-nya -1) n_clusters = len(set(clusters)) - (1 if -1 in clusters else 0) n_noise = list(clusters).count(-1) print(f"Jumlah cluster: {n_clusters}") print(f"Jumlah noise/outlier: {n_noise}") # Visualisasi plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=clusters, cmap='viridis') plt.title('DBSCAN Clustering') plt.show()

Tips Menentukan eps dan min_samples

Gunakan K-Distance Graph untuk menentukan eps optimal. Plot jarak ke tetangga terdekat ke-k (k=min_samples), lalu cari "elbow" pada grafik.

Kelebihan dan Kekurangan DBSCAN

Kelebihan:

  • Tidak perlu menentukan K di awal.
  • Dapat menemukan cluster berbentuk non-spherical.
  • Robust terhadap outlier.

Kekurangan:

  • Sensitif terhadap pemilihan eps dan min_samples.
  • Kesulitan dengan cluster yang memiliki kepadatan berbeda.