Le clustering hiérarchique est un algorithme de machine learning non supervisé qui regroupe les données dans un arbre de clusters imbriqués. Les algorithmes peuvent être agglomératifs ou diviseurs. L’analyse de cluster hiérarchique permet de trouver des modèles et des connexions dans les jeux de données. Les résultats sont présentés dans un dendrogramme montrant les relations de distance entre les clusters.
Le clustering est une technique de machine learning non supervisé utilisée dans l’analyse des données pour détecter et regrouper des objets similaires. L’analyse de cluster hiérarchique (HCA), ou clustering hiérarchique, regroupe les objets dans une hiérarchie de cluster sans y imposer un ordre linéaire. De nombreuses disciplines, telles que la biologie, l’analyse d’images et les sciences sociales, utilisent des méthodes de clustering hiérarchique pour explorer et reconnaître des modèles dans les jeux de données. Les cas d’utilisation incluent la catégorisation des populations dans la recherche clinique, la segmentation des clients et la détection des communautés de nœuds dans les modèles de réseau.
Il existe deux types de clustering hiérarchique :
- L’approche agglomérative ou ascendante1 qui fusionne plusieurs fois les clusters jusqu’à ce qu’un seul grand cluster émerge.
- L’approche de division ou descendante2 qui commence avec un seul cluster contenant toutes les données, puis qui divise les clusters de manière successive jusqu’à ce que tous les clusters soient des singletons.
L’analyse par clustering hiérarchique implique des coûts de calcul élevés. Bien que l’utilisation d’un tas puisse réduire le temps de calcul, les besoins en mémoire sont plus importants. Les deux types de clustering (par division et agglomération) sont « gourmands », ce qui signifie que l’algorithme décide quels clusters fusionner ou fractionner en faisant le choix optimal au niveau local à chaque étape du processus. Il est également possible d’appliquer un critère d’arrêt, où l’algorithme arrête l’agglomération ou la division des clusters lorsqu’il atteint un nombre prédéterminé de clusters.
Un diagramme arborescent appelé dendrogramme3 est souvent utilisé pour visualiser la hiérarchie des clusters. Il affiche l’ordre dans lequel les clusters ont été fusionnés ou divisés et montre la similarité ou la distance entre les points de données. Les dendrogrammes peuvent également être considérés comme une liste imbriquée de listes4 avec des attributs.
Les algorithmes de clustering hiérarchique utilisent le concept de matrice de dissimilarité pour décider quels clusters fusionner ou diviser. La dissimilarité est la distance entre deux points de données telle que mesurée par une méthode de liaison choisie. Les valeurs d’une matrice de dissimilarité expriment :
- La distance5, par exemple la distance euclidienne, entre des points isolés d’un jeu
- Un critère de clustering par liaison, qui spécifie la dissimilarité en fonction des distances des points par paires dans les jeux
Découvrons les méthodes de liaison de distance euclidienne les plus courantes. Parmi les autres mesures de distance qui peuvent être utilisées, citons les distances de Minkowski, Hamming, Mahalanobis, Hausdorf et Manhattan. Notez que chaque méthode de liaison génère différents clusters à partir du même jeu de données. Le choix de la méthode de clustering par liaison appropriée dépend de facteurs tels que le type de données regroupées, la densité de données, la forme du cluster et la présence de valeurs aberrantes ou de bruit dans le jeu de données.
La méthode de liaison unique analyse les distances par paires entre les éléments de deux clusters, puis utilise la distance minimale entre les clusters. Cette méthode est bien adaptée aux formes de cluster non elliptiques, mais elle sera affectée par le bruit et les données aberrantes. Elle présente une limitation connue sous le nom d’effet de chaîne6. Quelques points créant un pont entre une paire de clusters peuvent faire fusionner les deux clusters en un seul. Les critères de liaison minimale peuvent être représentés comme suit :
mina∈A,b∈Bd(a,b)
où A et B sont deux jeux observés et d est une fonction de distance.
Les distances entre les clusters peuvent également être calculées en fonction des points les plus éloignés les uns des autres. La méthode maximale est moins sensible au bruit et aux données aberrantes que la méthode minimale, mais son utilisation peut fausser les résultats en présence de clusters globulaires ou de grande taille. La liaison maximale produit souvent plus de clusters sphériques que la liaison minimale. La liaison maximale peut être représentée par la formule suivante :
maxa∈A,b∈Bd(a,b)
où A et B sont deux jeux observés et d est une distance.
Ces méthodes, introduites par Sokal et Michelen7 , définissent la distance entre les clusters comme la distance moyenne entre les paires sur toutes les paires de points des clusters. L’algorithme peut être soit la méthode des groupes de paires non pondérés avec moyenne arithmétique (UPGMA), soit la méthode des groupes de paires pondérés avec moyenne arithmétique (WPGMA). Le terme « non pondéré » signifie que toutes les distances contribuent de manière égale à chaque moyenne.
UPGMA est représenté par la formule suivante :
1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)
où *A* et *B* sont deux jeux observés et *d* est la distance.
WPGMA est représenté par la formule suivante :
d(i∪j,k)=d(i,k)+d(j,k)2
où i et j sont les clusters les plus proches combinés à chaque étape pour former un nouveau cluster composé de l’union de i et j. Nous pouvons ensuite calculer la distance par rapport à un autre cluster k, qui est la moyenne arithmétique des distances moyennes entre les points de données en k et i et k et j.
Ici, nous utilisons la distance entre les centres de cluster, aussi appelés centroïdes. La distance entre les centroïdes est calculée à l’aide d’une fonction de distance :
∥μA-μB∥2
où μA est le centroïde de A et μB est le centroïde de B.
Joe H. Ward a introduit la méthode de l’augmentation minimale de la somme des carrés (MISSQ)8 dans les années 1960. Chaque point de données commence dans son propre cluster. Cette approche signifie que la somme des carrés entre les points de données est initialement égale à zéro, puis augmente au fur et à mesure que l’on fusionne les clusters. La méthode de Ward minimise la somme des carrés des distances entre les points et les centres des clusters au fur et à mesure de leur fusion. La méthode de Ward est un bon choix pour les variables quantitatives9, et elle est moins affectée par le bruit ou les données aberrantes. Elle peut être représentée comme suit :
∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2
où la moyenne de A et la moyenne de B sont les centroïdes de A et de B respectivement, et x est un point de données qui appartient à l’union de A et de B
La méthode de variance minimale de Ward peut être affinée à l’aide d’un algorithme de Lance-Williams. Ces algorithmes utilisent une formule récursive pour mettre à jour les distances des clusters et trouver la paire de clusters la plus proche à fusionner.
Dans le clustering hiérarchique agglomératif, également connu sous le nom d’imbrication agglomérative (AGNES), chaque point de données commence en tant que cluster. L’algorithme utilise un critère de clustering de liaison sélectionné basé sur une matrice de dissimilarité pour décider de la paire de clusters à regrouper. L’algorithme monte dans la hiérarchie et continue de fusionner les clusters jusqu’à ce que tout ait été lié, créant ainsi une série hiérarchique de clusters imbriqués. En résumé, les étapes10 du clustering agglomératif sont les suivantes :
1. Calculez la matrice de dissimilarité en utilisant un indicateur de distance particulier.
2. Attribuez chaque point de données à un cluster.
3. Fusionnez les clusters en fonction d’un critère de liaison pour la similarité entre les clusters.
4. Mettez à jour la matrice de distance.
5. Répétez les étapes 3 et 4 jusqu’à ce qu’il reste un seul cluster ou que tout critère d’arrêt soit atteint.
Les principes du clustering hiérarchique par division ont été développés par Macnaughton-Smith et d’autres11 en 1964, et ils ont été étudiés davantage par Kaufman et Rousseeuw avec leur algorithme DIANA (Divisive ANAlysis clustering)12 en 1990. Le clustering par division utilise l’approche opposée à celle du clustering agglomératif. Tous les points de données commencent dans un seul cluster qui est divisé en plusieurs clusters. Le fractionnement se produit jusqu’à ce que tous les clusters restants soient des singletons ou qu’un critère d’arrêt tel qu’un nombre prédéfini de clusters soit atteint. Les méthodes par division permettent d’identifier les grands clusters13 et peuvent être plus précises que les méthodes agglomératives, car l’algorithme prend en compte l’ensemble de la distribution du jeu de données dès le début du processus.
Pour gagner en efficacité, les méthodes par division utilisent des algorithmes de clustering plats tels que K-means pour diviser le jeu de données en clusters. Le nombre de clusters doit être spécifié à l’avance. L’algorithme K-means divise les clusters en minimisant la somme des carrés entre les points centroïdes au sein des clusters. C’est ce que l’on appelle le critère d’inertie14. Les étapes15 du clustering par division sont les suivantes :
1. Commencez par tous les points de données d’un jeu de données de taille N (d1, d2, d3 ... dN) dans un cluster.
2. Divisez le cluster en deux clusters différents ou hétérogènes en utilisant une méthode de clustering plate telle que l’algorithme k-means.
3. Répétez l’étape 2, en choisissant le meilleur cluster à fractionner et en supprimant les données aberrantes du cluster le moins cohérent après chaque itération.
4. Arrêtez lorsque chaque exemple se trouve dans son propre cluster, sinon répétez l’étape 3.
Les résultats des clusters sont généralement présentés sous forme de dendrogramme (structure arborescente binaire). L’axe des x du dendrogramme représente les points de données et l’axe des y, ou la hauteur des lignes, indique la distance qui les séparait au moment de leur fusion.
Vous pouvez utiliser un dendrogramme pour déterminer le nombre de clusters16 que contiendra votre modèle de clustering final. Une stratégie consiste à identifier le point de coupure naturel dans l’arbre, où les branches diminuent et deviennent plus longues. Alternativement, le nombre de clusters est donné par le nombre de lignes verticales traversées lorsqu’une ligne horizontale coupe le dendrogramme.
Dans l’exemple présenté ici, la ligne horizontale H1 coupe deux lignes verticales. Cela montre qu’il y a deux clusters à ce stade du processus : un cluster avec les points 5, 8 et 2 et un cluster avec les points restants. Plus la ligne horizontale peut se déplacer vers le haut ou vers le bas sans couper d’autres lignes horizontales dans le dendrogramme, meilleure est la sélection de ce nombre de clusters pour votre modèle de clustering. Dans l’exemple ci-dessous, la ligne horizontale H2 sélectionne quatre clusters. H2 ne peut pas se déplacer de haut en bas jusqu’à H1 sans couper d’autres lignes horizontales. Ce scénario montre que le choix de deux clusters (H1) est probablement plus approprié pour votre modèle de clustering.
Un modèle de clustering robuste17 crée des clusters avec une similarité intraclasse élevée et une faible similarité interclasse. Cependant, il peut être difficile de définir la qualité des clusters, et votre sélection des critères de liaison et des nombres de clusters peut avoir une incidence significative sur vos résultats. Ainsi, lors de la création d’un modèle de clustering, essayez différentes options et sélectionnez celles qui vous aident le mieux à découvrir et à révéler des modèles dans le jeu de données pour une considération future. Les facteurs à prendre en compte18 sont les suivants :
- Le nombre de clusters pratiques ou logiques pour le jeu de données (compte tenu de la taille du jeu de données, de la forme des clusters, du bruit, etc.)
- Les statistiques, telles que les valeurs moyennes, maximales et minimales pour chaque cluster
- Le meilleur indicateur ou critère de liaison à appliquer
- L’impact de toute donnée aberrante ou variable de résultat
- Toute connaissance spécifique d’un domaine ou d’un jeu de données
Voici d’autres méthodes permettant de déterminer le nombre optimal de clusters19 :
- La méthode du coude, qui consiste à tracer la somme des carrés au sein du cluster par rapport au nombre de clusters et à déterminer le « coude » (le point où le graphique se stabilise)
- La statistique d’écart, qui consiste à comparer la somme des carrés réelle à la somme des carrés attendue au sein du cluster pour obtenir une distribution de référence nulle et à identifier l’écart le plus important.
Le clustering hiérarchique fournit aux data scientists des informations sur la structure et les relations au sein des jeux de données et peut être appliqué dans de nombreux cas d’utilisation.
Le clustering hiérarchique peut aider à analyser les tendances et à segmenter les données des clients, par exemple, par choix de produit, démographie, comportement d’achat, profil de risque ou interactions avec les médias sociaux.
Les cohortes de patients pour la recherche clinique peuvent se compter par milliers. Le clustering hiérarchique permet de classer les populations mixtes en groupes plus homogènes20 en utilisant, par exemple, des critères de diagnostic, des réponses psychologiques ou des mutations de l’ADN. Il peut également être appliqué pour regrouper les espèces par caractéristiques biologiques afin de comprendre leur développement évolutif.
Le regroupement hiérarchique est utilisé dans les applications de reconnaissance de texte à partir d’images pour regrouper les caractères manuscrits en fonction de leur forme. Il est également utilisé pour stocker et récupérer des informations en fonction de certains critères ou pour classer les résultats de recherche.
Les langages de programmation Python et R sont largement utilisés dans le domaine de la science des données. Python est flexible et peut gérer un large éventail de tâches. En revanche, R est spécialement conçu pour le calcul statistique et propose de nombreuses options pour visualiser votre analyse de clustering hiérarchique.
Python fournit la fonction AgglomerativeCluster21 (voir aussi les exemples de clustering agglomératif22 sur sklearn), et SciPy fournit une fonction pour tracer des dendrogrammes23. Des packages tels que dendextend24 complètent les fonctionnalités de dendrogramme de R, améliorent l’analyse de sensibilité et vous permettent de comparer et de manipuler différents dendrogrammes. Pour une expérience pratique, consultez nos tutoriels étape par étape : comment implémenter le clustering hiérarchique dans Python et comment implémenter le clustering hiérarchique dans R.
Nous avons interrogé 2 000 entreprises à propos de leurs initiatives d’IA pour découvrir ce qui fonctionne, ce qui ne fonctionne pas et comment progresser.
IBM Granite est notre famille de modèles d’IA ouverts, performants et fiables, conçus pour les entreprises et optimisés pour dimensionner vos applications d’IA. Explorez les options de langage, de code, de séries temporelles et de garde-fous.
Accédez à notre catalogue complet de plus de 100 cours en ligne en souscrivant aujourd’hui un abonnement individuel ou multiutilisateur afin d’élargir vos compétences dans certains de nos produits à un prix avantageux.
Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.
1 Murtagh, F., Legendre, P., « Ward’s Hierarchical Agglomerative Clustering Method : Which Algorithms Implement Ward’s Criterion ? », 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z
2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data : An Introduction to Cluster Analysis. Wiley. Chp 6. Divisive Analysis (Program DIANA) pages 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801
3 Galili, T., « Introduction to dendextend », The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html
4 Lecture Notes from Penn State Eberly College of Science, « Hierarchical Clustering » https://online.stat.psu.edu/stat555/node/85/
5, 17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2e éd., Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4
6 Sokal, R, Michener, C., « A statistical method for evaluating systematic relationships », 1958, University of Kansas Science Bulletin, 38 : 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up
7 Ward, J. H., « Hierarchical Grouping to Optimize an Objective Function », 1963, Journal of the American Statistical Association, 58 (301) : 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963.10500845.
8 Lecture Notes from Penn State Eberly College of Science, « Applied Multivariate Statistical Analysis », https://online.stat.psu.edu/stat505/lesson/14/14.7
9, 15 Shetty P. et Singh S., « Hierarchical Clustering : A Survey », International Journal of Applied Research, vol. 7, n° 4, partie C, 2021, https://www.allresearchjournal.com/archives/?year=2021&vol=7&issue=4&part=C&ArticleId=8484
10 Macnaugton-Smith, P., Williams, W., Dale, M., et al., « Dissimilarity Analysis : a new Technique of Hierarchical Sub-division », Nature 202, 1034–1035 (1964), https://www.nature.com/articles/2021034a0
12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor and Francis, 2020, https://bradleyboehmke.github.io/HOML/
13 Cavalli-Sforza, L. L. et Edwards A. W. F., « Phylogenetic analysis : models and estimation procedures », 1967, Evolution 21 : 550–570 et Am. J. Hum. Genet. 19 : 233–257, https://pmc.ncbi.nlm.nih.gov/articles/PMC1706274/
14 Sci-kit learn 1.3.2, 2.3 Clustering, https://scikit-learn.org/stable/modules/clustering.html
16 Lecture notes from MIT OpenCourseWare, 2017, https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction-to-clustering/video-5-hierarchical-clustering/
18 Lecture notes from the University of Washington, 2001, https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf
19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms
20 QCBS R Workshop Series, https://r.qcbs.ca/workshop09/book-en/clustering.html
21 Zhongheng Zhang et al., « Hierarchical cluster analysis in clinical research with heterogeneous study population : highlighting its visualization with R », Annals of Translational Medicine. Février 2017; 5(4) : 75, https://atm.amegroups.org/article/view/13789/14063
22, 23 Scit-kit learn 1.3.2 documentation, https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html
24 SciPy Manual v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com