Étiquettes de clusters dans le regroupement hiérarchique

Apprentissage non supervisé en Python

Benjamin Wilson

Director of Research at lateral.io

Étiquettes de clusters dans le regroupement hiérarchique

  • Ce n'est pas seulement un outil de visualisation.
  • Les étiquettes de cluster à n'importe quelle étape intermédiaire peuvent être récupérées
  • À utiliser, par exemple, dans les tableaux croisés

Eurovision hierarchical clustering

Apprentissage non supervisé en Python

Regroupements intermédiaires et hauteur sur le dendrogramme

  • Par exemple, à une hauteur de 15 :
    • La Bulgarie, Chypre et la Grèce constituent un groupe
    • La Russie et la Moldavie en constituent un autre
    • L'Arménie forme un groupe à elle seule

Zoomed in cluster with horizontal line at height 15

Apprentissage non supervisé en Python

Les dendrogrammes indiquent les distances entre les clusters

  • Hauteur sur le dendrogramme = distance entre les groupes fusionnés
  • Par exemple, les groupes comprenant uniquement Chypre et la Grèce présentaient une distance d'environ 6

Zoomed in cluster with Cyprus/Greece cluster highlighted

Apprentissage non supervisé en Python

Les dendrogrammes indiquent les distances entre les clusters

  • Hauteur sur le dendrogramme = distance entre les clusters fusionnés
  • Par exemple, les groupes comprenant uniquement Chypre et la Grèce présentaient une distance d'environ 6
  • Ce nouveau groupe se trouve à une distance d’environ 12 du groupe comprenant uniquement la Bulgarie

Zoomed in cluster with Cyprus/Greece cluster and Cyprus/Greece/Bulgaria cluster highlighted

Apprentissage non supervisé en Python

Regroupements intermédiaires et hauteur sur le dendrogramme

  • La hauteur sur le dendrogramme indique la distance maximale entre les clusters fusionnés
  • Ne pas fusionner les clusters plus éloignés que cela (par exemple 15)

Zoomed in cluster with horizontal line at height 15

Apprentissage non supervisé en Python

Distance entre les clusters

  • Défini par une « méthode de liaison »
  • Dans le cas d'un lien « complet » : la distance entre les clusters correspond à la distance maximale entre leurs échantillons
  • Spécifié via le paramètre de méthode, par exemple linkage(samples, method="complete")
  • Différentes méthodes de liaison, différents regroupements hiérarchiques !
Apprentissage non supervisé en Python

Extraction des étiquettes de cluster

  • Utiliser la fonction fcluster()
  • Renvoie un tableau NumPy contenant les étiquettes des clusters

Zoomed in cluster with horizontal line at height 15

Apprentissage non supervisé en Python

Extraction des étiquettes de cluster à l'aide de fcluster

from scipy.cluster.hierarchy import linkage
mergings = linkage(samples, method='complete')
from scipy.cluster.hierarchy import fcluster

labels = fcluster(mergings, 15, criterion='distance') print(labels)
[ 9  8 11 20  2  1 17 14 ... ]
Apprentissage non supervisé en Python

Aligner les étiquettes des clusters avec les noms de pays

Étant donné une liste de chaînes de caractères country_names :

import pandas as pd
pairs = pd.DataFrame({'labels': labels, 'countries': country_names})
print(pairs.sort_values('labels'))
               countries  labels
5                Belarus       1
40               Ukraine       1
...
36                 Spain       5
8               Bulgaria       6
19                Greece       6
10                Cyprus       6
28               Moldova       7
...
Apprentissage non supervisé en Python

Passons à la pratique !

Apprentissage non supervisé en Python

Preparing Video For Download...