#clustering-hierarchique — Apprentissage non supervisé
Fusionner les points deux à deux jusqu'à n'en faire qu'un : le dendrogramme, les critères de lien, et la hauteur de coupe qui décide du nombre de clusters.
Ce que tu vas manipuler
- Bienvenue dans #clustering-hierarchique. À gauche, 30 points gris posés sur un plan : on devine trois taches, mais la machine ne le sait pas encore — chaque point est son propre cluster. À droite, un dendrogramme vide : 30 feuilles alignées, un axe des hauteurs et, tout en haut, un plan jaune de coupe. L'idée tient en une phrase : fusionner les deux clusters les plus proches, encore et encore, jusqu'à n'en faire qu'un. Chaque fusion dessine un « U » dont la hauteur est la distance à laquelle elle s'est faite.
- Lance la première fusion :
/fusionner. L'algorithme cherche dans la matrice des distances la paire la plus proche et la soude. - Encore une :
/fusionner. Compare la hauteur du nouveau U à celle du premier. - Laisse tourner jusqu'au bout :
/tout. Les 29 fusions s'enchaînent, des paires aux groupes, jusqu'à la racine unique. - Le plan jaune est au-dessus de tout : un seul cluster. Descends-le :
/couper 1.5, puis compte les branches qu'il traverse. - À 1,5 ça marche, mais c'est un peu de la chance. Fais l'inverse : demande directement trois groupes avec
/clusters 3. Le plan se place tout seul au milieu du plus grand vide entre deux fusions. - Changeons de terrain :
/dataset chaine. Une file de points à intervalles réguliers, et un petit groupe compact à côté. Regarde comment le lien moyen découpe ça à la hauteur de coupe actuelle. - Passe au lien simple :
/lien simple. La distance entre deux groupes devient celle de leurs deux points les plus proches. - À toi de jouer :
/lien wardpuis/clusters 2sur la file ;/dataset anneauxpuis/lien simpleet/clusters 2(les deux anneaux retrouvés) contre/lien complet(échec) ;/n 60pour densifier ;/graine 12pour d'autres points ;/annulerpour défaire une fusion ;/reinitpour repartir. Prochaine étape : #dbscan, qui trouve les groupes par densité sans fixer leur nombre, et #k-means, le concurrent qui doit connaître k à l'avance.
Commandes du canal
/fusionner— Fait la prochaine fusion : les deux clusters les plus proches se soudent./tout— Fait toutes les fusions restantes : l'arbre complet, jusqu'à la racine./annuler— Défait la dernière fusion visible./lien <simple|complet|moyen|ward>— Change le critère de lien et recalcule tout l’arbre (même nombre de fusions visibles)./couper <hauteur=0..4>— Place le plan de coupe à cette hauteur : autant de clusters que de branches traversées./clusters <m=1..10>— Choisit le nombre de clusters : le plan se place au milieu du bon intervalle de hauteurs./dataset <blobs|chaine|anneaux>— Change le jeu de points (même n, même graine) et recalcule l’arbre./n <10..60>— Change le nombre de points et recalcule l’arbre./graine <1..99>— Retire les points avec une autre graine (même jeu, même n)./reinit— Revient au départ : blobs, 30 points, lien moyen, aucune fusion, coupe tout en haut.
Glossaire
- Clustering hiérarchique agglomératif
- Méthode de regroupement non supervisée qui part de n clusters d'un point et fusionne à chaque étape les deux clusters les plus proches, jusqu'à n'en garder qu'un. On obtient toute une hiérarchie de partitions au lieu d'une seule.
- Dendrogramme
- Arbre qui résume toutes les fusions : les feuilles sont les points, chaque « U » relie deux clusters à la hauteur de leur fusion. Le couper à une hauteur donnée fournit une partition en clusters.
- Critère de lien
- Règle qui définit la distance entre deux clusters à partir des distances entre leurs points : lien simple, complet, moyen, Ward… Elle décide de l'ordre des fusions et donc de la forme de l'arbre.
- Lien simple
- Distance entre deux clusters = distance entre leurs deux points les plus proches. Suit les formes allongées et les anneaux, mais souffre de l'effet de chaîne.
- Lien complet
- Distance entre deux clusters = distance entre leurs deux points les plus éloignés, c'est-à-dire le diamètre du cluster fusionné. Produit des clusters compacts et ronds, découpe les formes allongées.
- Lien moyen
- Distance entre deux clusters = moyenne de toutes les distances point à point entre les deux groupes. Compromis entre simple et complet, peu sensible aux points aberrants.
- Méthode de Ward
- Critère qui fusionne les deux clusters dont la réunion augmente le moins l'inertie intra-cluster (somme des carrés des distances aux centroïdes). Favorise des clusters compacts de tailles comparables ; c'est le critère par défaut de scikit-learn.
- Hauteur de coupe
- Seuil de distance auquel on tranche le dendrogramme : les branches traversées deviennent les clusters. Couper au milieu du plus grand saut de hauteur donne la partition la plus robuste ; on peut aussi viser directement un nombre de clusters.
- Effet de chaîne
- Défaut du lien simple : une file de points proches sert de pont et fait fusionner, de proche en proche, des groupes qui n'ont rien à voir. Le dendrogramme s'écrase en bas et ne montre plus de saut net où couper.
- Matrice des distances
- Tableau n × n des distances entre toutes les paires de points, point de départ de l’algorithme. Après chaque fusion, la ligne du nouveau cluster se déduit des anciennes par la formule de Lance-Williams.
Autres canaux du thème Apprentissage non supervisé
- #k-means — Regrouper sans étiquettes : des centroïdes qui se déplacent, l'inertie qui baisse, le choix de k — et les formes où k-means échoue.
- #pca — Analyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
- #clustering-hierarchique — Fusionner les points deux à deux jusqu'à n'en faire qu'un : le dendrogramme, les critères de lien, et la hauteur de coupe qui décide du nombre de clusters.
- #dbscan — Regrouper par densité : epsilon, MinPts, points cœur, bordure et bruit — l'algorithme qui trouve des formes quelconques et ignore les intrus.
- #detection-anomalies — Repérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».
- #t-sne-umap — Cartographier la haute dimension : t-SNE et UMAP déplient des données à 10 dimensions en une carte 2D lisible — perplexité, voisins, et pièges de lecture.