← retour aux snippets

HDBSCAN: clustering de densité robuste

clusteriser des données avec HDBSCAN et détecter le bruit

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.