HDBSCAN: clustering de densité robuste
objectif
Expliquer et montrer comment clusteriser des données avec HDBSCAN et détecter le bruit.
code minimal
import numpy as np
import hdbscan # pip install hdbscan
from sklearn.datasets import make_moons
X, _ = make_moons(1000, noise=0.07, random_state=0)
clusterer = hdbscan.HDBSCAN(min_cluster_size=20, min_samples=10, cluster_selection_epsilon=0.0)
labels = clusterer.fit_predict(X)
np.unique(labels, return_counts=True)
utilisation
# probabilités d'appartenance et outlier scores
proba = clusterer.probabilities_
out = clusterer.outlier_scores_
float(proba.mean()), float(out.max())
variante(s) utile(s)
# soft clustering: membership vector via prediction_data
# hdbscan.all_points_membership_vectors(clusterer)
notes
- HDBSCAN détermine le nombre de clusters automatiquement.
- labels = -1 correspond au bruit.