Accueil / Factory / Algos ML / HDBSCAN — factory / algos ML / apprentissage non supervisé

ALGORITHME HDBSCAN.

Une extension de DBSCAN qui teste tous les rayons de voisinage à la fois et garde les groupes les plus stables. Il trouve dans la même analyse un grand groupe diffus et un petit groupe très serré, là où DBSCAN impose un seul rayon. Un seul réglage compte vraiment : la taille minimale d'un groupe.

ClusteringDensitéDétection de bruitNon superviséNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceGroupes de formes et densités variées, bruit isolé
InterprétabilitéGroupes et bruit se lisent, pas de profil moyen fourni
VitessePlus lent que DBSCAN, correct jusqu'à des centaines de milliers
Facilité de réglageUn réglage principal, la taille minimale d'un groupe
Tolérance aux données brutesStandardisation obligatoire, souffre en grande dimension
EN 30 SECONDES

Une carte du relief vue par un niveau d'eau qui monte. Les îles qui restent émergées longtemps sont de vrais sommets ; celles qui disparaissent vite ne sont que des bosses.

1. On mesure la densité autour de chaque point

La distance au k-ième voisin sert de mesure : petite dans une zone dense, grande dans une zone vide. Les distances sont corrigées pour que les points isolés restent loin de tout.

2. On construit la hiérarchie de tous les regroupements

En faisant varier le seuil de densité, les groupes se séparent ou disparaissent. On obtient un arbre, comme si l'on lançait DBSCAN avec tous les rayons possibles.

3. On garde les groupes les plus stables

Un groupe qui survit sur une large plage de densités est retenu ; ceux qui ont moins de membres que la taille minimale sont traités comme du bruit. Chaque point reçoit aussi une probabilité d'appartenance.

LE CAS MÉTIER

comportements de paiement · banque / e-commerce
EN ENTRÉE

5 000 transactions, sans étiquette

Montant, heure, nombre de transactions du porteur sur 24 h, distance au domicile, nouveau marchand ou non. Montants et distances passent au logarithme pour ne pas écraser le reste.

EN SORTIE

Deux grands groupes et un petit groupe très typé

HDBSCAN trouve les achats habituels (4 474), les achats chez un nouveau marchand (485) et un groupe serré de 39 transactions : gros montants, en pleine nuit, loin du domicile, en rafale. Seules 2 transactions restent en bruit.

CE QU'ON MESURE

Contrôle a posteriori avec les fraudes confirmées

Les fraudes confirmées plus tard servent seulement à vérifier : les 39 transactions du petit groupe sont toutes des fraudes, et la 40e est en bruit. HDBSCAN révèle ici un schéma de fraude organisé, pas seulement des cas isolés. Sur des données réelles, les frontières sont bien moins nettes.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Groupes de densités différentes dans les mêmes données
  • Pas d'idée du nombre de groupes, ni du bon rayon de voisinage
  • Besoin de repérer des micro-groupes serrés : fraude organisée, fermes de faux comptes, pannes en série
  • Exploration après une réduction de dimension (UMAP), cas d'usage très répandu

NON

  • Des dizaines de variables brutes : réduire d'abord la dimension
  • Besoin que tout le monde soit dans un segment : K-means ou mélange gaussien
  • Très gros volumes avec contrainte de temps : Mini-batch K-means
  • Score d'anomalie individuel à trier : Isolation Forest
LES 3 RÉGLAGES QUI COMPTENT

Noms donnés pour R (paquet dbscan) et Python (scikit-learn, qui intègre HDBSCAN depuis la version 1.3).

minPts / min_cluster_size

La taille minimale d'un groupe. C'est le réglage principal : en dessous, un regroupement est traité comme du bruit. Ici, 25 permet de voir le groupe des 39 transactions ; avec 50, il bascule dans le bruit.

min_samples (Python)

Le nombre de voisins pour mesurer la densité, égal par défaut à min_cluster_size. Plus il est grand, plus l'algorithme est prudent et plus il déclare de bruit. En R, minPts règle les deux à la fois.

cluster_selection_method (Python)

"eom" (défaut) favorise les groupes les plus stables, parfois grands. "leaf" retient les groupes les plus fins de l'arbre, utile pour obtenir des micro-segments homogènes.

LE CODE MINIMAL

jeu d'exemple : transactions.csv ↓
# Comportements de paiement : HDBSCAN en R
library(dbscan)

transactions <- read.csv("transactions.csv")
variables <- c("montant", "heure", "nb_transactions_24h", "distance_km", "nouveau_marchand")
X <- transactions[, variables]
# Log sur les montants et distances, très étirés vers le haut
X$montant <- log1p(X$montant)
X$distance_km <- log1p(X$distance_km)
X <- scale(X)

# Un seul réglage : minPts, taille minimale d'un groupe (et densité de référence)
modele <- hdbscan(X, minPts = 25)
transactions$groupe <- modele$cluster   # 0 = bruit
print(modele)

# Profil médian de chaque groupe
print(aggregate(transactions[, variables], by = list(groupe = transactions$groupe), FUN = median))
# Contrôle après coup, avec les fraudes confirmées plus tard
print(table(groupe = transactions$groupe, fraude = transactions$fraude_confirmee))

QUESTIONS FRÉQUENTES

Quelle différence entre DBSCAN et HDBSCAN ?

DBSCAN utilise un seul rayon eps pour toutes les zones, ce qui échoue quand les densités varient. HDBSCAN explore tous les rayons et garde les groupes les plus stables. Il remplace le choix délicat de eps par celui, plus intuitif, de la taille minimale d'un groupe.

Comment choisir min_cluster_size ?

Demandez-vous à partir de combien de cas un groupe vous intéresse. Pour une segmentation marketing, quelques centaines ; pour repérer une fraude organisée, quelques dizaines. On teste ensuite deux ou trois valeurs et on garde celle dont les groupes sont stables et interprétables.

HDBSCAN peut-il détecter des anomalies ?

Oui, de deux façons. Les points classés en bruit sont atypiques, et chaque point reçoit un score d'aberration (GLOSH), disponible dans le paquet R dbscan et dans le paquet Python hdbscan. HDBSCAN repère aussi des micro-groupes d'anomalies semblables, ce qu'un score individuel ne montre pas.

LES ALGOS VOISINS

à comparer avant de choisir
la version à rayon fixe

DBSCAN

Plus simple et plus rapide, mais un seul rayon eps pour toutes les zones. Suffit quand les densités sont homogènes.

Voir la fiche →
pour scorer les cas isolés

Isolation Forest

Donne un score d'anomalie à chaque transaction. Complémentaire : HDBSCAN voit les groupes suspects, Isolation Forest les cas isolés.

Voir la fiche →
pour explorer

OPTICS

Ordonne les points par densité et laisse choisir l'échelle en regardant le graphe d'accessibilité.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →