Type |
Algorithme de partitionnement de données (d), partitionnement de données |
---|---|
Décrit par |
The Elements of Statistical Learning (d) |
Dans le domaine de l'analyse et de la classification automatique de données, le regroupement hiérarchique est un partitionnement de données ou clustering, au moyen de diverses méthodes, dites « ascendantes » et « descendantes ».
Les méthodes dites « descendantes » partent d’une solution générale vers une autre plus spécifique. Les méthodes de cette catégorie démarrent avec une seule classe contenant la totalité puis se divisent à chaque étape selon un critère jusqu’à l’obtention d’un ensemble de classes différentes.
À l'inverse des méthodes dites « descendantes », la classification ascendante hiérarchique [1] est dite « ascendante » part d'une situation où tous les individus sont seuls dans une classe, puis sont rassemblés en classes de plus en plus grandes. Le qualificatif « hiérarchique » vient du fait qu'elle produit une hiérarchie H, l'ensemble des classes à toutes les étapes de l'algorithme, qui vérifie les propriétés suivantes :
C'est une méthode de classification automatique utilisée en analyse des données ; à partir d'un ensemble de n individus, son but est de répartir ces individus dans un certain nombre de classes.
La méthode suppose qu'on dispose d'une mesure de dissimilarité entre les individus ; dans le cas de points situés dans un espace euclidien, on peut utiliser la distance comme mesure de dissimilarité. La dissimilarité entre des individus x et y sera notée .
Initialement, chaque individu forme une classe, soit n classes. On cherche à réduire le nombre de classes à , ce qui se fait itérativement. À chaque étape, on fusionne deux classes choisies comme les plus « proches », donc à la dissimilarité minimale. Cette valeur de dissimilarité, appelée indice d'agrégation, va croître d'itération en itération, la première étant par principe la plus petite.
La dissimilarité de deux classes contenant chacune un individu se définit simplement par la dissimilarité entre ses individus.
Lorsque les classes ont plusieurs individus, de multiples critères permettent de calculer la dissimilarité. Les plus simples sont les suivants :
Entrées :
Sortie :
Pour i=1 à individus.longueur Faire classes.ajouter(nouvelle classe(individu[i])); Fin Pour Tant Que classes.longueur > nbClasses Faire // Calcul des dissimilarités entre classes dans une matrice triangulaire supérieure matDissim = nouvelle matrice(classes.longueur,classes.longueur); Pour i=1 à classes.longueur Faire Pour j=i+1 à classes.longueur Faire matDissim[i][j] = dissim(classes[i],classes[j]); Fin Pour Fin Pour // Recherche du minimum des dissimilarités Soit (i,j) tel que matDissim[i][j] = min(matDissim[k][l]) avec 1<=k<=classes.longueur et k+1<=l<=classes.longueur; // Fusion de classes[i] et classes[j] Pour tout element dans classes[j] Faire classes[i].ajouter(element); Fin pour supprimer(classes[j]); Fin Tant Que
Un dendrogramme est la représentation graphique d'une classification ascendante hiérarchique. Il se présente souvent comme un arbre binaire dont les feuilles sont les individus alignés sur l'axe des abscisses. Lorsque deux classes ou deux individus se rejoignent avec l'indice d'agrégation , des traits verticaux sont dessinés de l'abscisse des deux classes jusqu'à l'ordonnée , puis ils sont reliés par un segment horizontal.
À partir d'un indice d'agrégation , on peut tracer une droite d'ordonnée qui permet de voir une classification sur le dendrogramme.
Des versions plus complexes d'arbre de classification peuvent aider à construire un arbre de décision.