Clustering - Laboratoire ERIC (EA...

of 45/45
Clustering Julien JACQUES Université de Lyon, Lyon 2 & ERIC EA 3083 1 / 33
  • date post

    19-Feb-2020
  • Category

    Documents

  • view

    4
  • download

    0

Embed Size (px)

Transcript of Clustering - Laboratoire ERIC (EA...

  • Clustering

    Julien JACQUES

    Université de Lyon, Lyon 2 & ERIC EA 3083

    1 / 33

  • Clustering

    DéfinitionLe clustering a pour objectif de créer des groupes d’observationshomogènes, de sorte que :� les observations au sein d’un groupe soient les plus semblables

    possibles,� les groupes soient les plus différentes possibles les uns des autres.

    Vocabulaire� Le clustering est aussi appelé classification automatique,

    segmentation, classification non supervisée.� Les groupes sont aussi appelés des clusters, ou des classes.

    2 / 33

  • Plan

    ClusteringGénéralitésMéthode des centres mobiles (k-means)Classification Ascendante Hiérarchique

    Pour aller plus loin

    3 / 33

  • Plan

    ClusteringGénéralitésMéthode des centres mobiles (k-means)Classification Ascendante Hiérarchique

    Pour aller plus loin

    4 / 33

  • Notations

    � les individus (observations) sont décrits par un ensemble de pvariables aléatoires explicatives

    � Xi = (Xi1, . . . ,Xip) sont les variables explicatives pour l’individu i(1 ≤ i ≤ n)

    � on cherche à mettre chaque individu dans un des K groupes :Zi ∈ {1, . . . ,K} est le numéro du groupe de l’individu i

    � l’ensemble (Z1, . . . ,Zn) forme une partition des n individus en Kgroupes.

    5 / 33

  • Clustering (non supervisé) vs classification (supervisée)

    Clustering� Zi inconnue (aucune signification a priori)� objectif : à partir de l’observation de X1, . . . ,Xn, prédire Z1, . . . ,Zn� les classes sont ensuite interprétées dans le but de leur donner une

    signification concrète

    Classification� Zi connue (signification connue a priori)� objectif : à partir de l’observation de (X1,Z1), . . . , (Xn,Zn) construire

    une règle de classement r :

    r : X −→ r(X ) = Z

    � utiliser cette règle de classement pour classer de nouveaux individusde classes inconnues

    6 / 33

  • Applications

    Clustering� analyse exploratoire : donner une représentation simplifiée des

    données pour mieux les comprendre� exemple : typologie clients en marketing (Gestion de la relation

    clients / CRM - Customer Relationship Management)

    Classification� analyse prédictive : prédire une variable (Z ) qualitative à partir de

    variables explicatives (X)� exemples : prédire si un prospect va acheter le produit qu’on lui

    propose, prédire la probabilité qu’un patient soit atteint d’une certainemaladie...

    7 / 33

  • Distances entre individus

    Le clustering est généralement basé sur une notion de distance entreindividus.

    Distances pour données quantitatives E = RpOn utilisera généralement la distance euclidienne sur des donnéesnormalisées (si les échelles de valeurs des variables sont différentes) :

    d(Xi ,Xj) =

    ( p∑`=1

    (Xi` − Xj`)2)1/2

    8 / 33

  • Distances entre individus

    Le clustering est généralement basé sur une notion de distance entreindividus.

    Distances pour données quantitatives E = RpOn utilisera généralement la distance euclidienne sur des donnéesnormalisées (si les échelles de valeurs des variables sont différentes) :

    d(Xi ,Xj) =

    ( p∑`=1

    (Xi` − Xj`)2)1/2

    8 / 33

  • Inteprétation d’un clustering

    Comment interpréter une partition obtenue :� en examinant des représentants de chaque groupe (par exemple la

    moyenne),� en comparant, pour chaque variable, les valeurs moyennes des

    différents groupes.

    9 / 33

  • Validation d’un clustering

    Comment valider une partition obtenue :� si l’interprétation des clusters apporte des informations jusqu’ici

    inconnues,� en la comparant à une partition de référence.

    10 / 33

  • Comparaison de partitions

    On utilise souvent l’indice de Rand pour comparer deux partitionsZ1 = (Z11, . . . ,Z1n) et Z2 = (Z21, . . . ,Z2n) :

    R =a + d

    a + b + c + d=

    a + d(2n

    ) ∈ [0,1]où, parmi les

    (2n

    )paires d’individus possibles :

    � a : nombre de paires dans une même classe dans Z1 et dans Z2� b : nombre de paires dans une même classe dans Z1 mais séparées

    dans Z2� c : nombre de paires séparées dans Z1 mais dans une même classe

    dans Z2� d : nombre de paires dans séparées dans Z1 et dans Z2

    11 / 33

  • Comparaison de partitions

    Sous :la fonction adjustedRandIndex() du package mclust calcule uneversion ajustée de cet indice (ajustée de sorte que 2 partitions aléatoiresaient un index égal à 0).

    12 / 33

  • Exercice

    Deux méthodes de clustering ont conduit aux 2 partitions suivantes :� Z1 = {1,1,2,2,2}� Z2 = {1,2,2,1,2}Calculer l’indice de Rand de ces deux partitions.

    Correction : a = 1, d = 3,(2

    5

    )= 10 et R = 0.4

    13 / 33

  • Exercice

    Deux méthodes de clustering ont conduit aux 2 partitions suivantes :� Z1 = {1,1,2,2,2}� Z2 = {1,2,2,1,2}Calculer l’indice de Rand de ces deux partitions.

    Correction : a = 1, d = 3,(2

    5

    )= 10 et R = 0.4

    13 / 33

  • Plan

    ClusteringGénéralitésMéthode des centres mobiles (k-means)Classification Ascendante Hiérarchique

    Pour aller plus loin

    14 / 33

  • Algorithme des k-meanskmeans{stats}

    On se place dans E = Rp muni de la distance euclidienne.

    Algorithm 1 kmeans1: init. : tirages au hasard de K centres µk parmi les n observations2: while partition non stable do3: affecter chaque observation à la classe dont le centre est le plus

    proche4: recalculer les centres (moyennes) des classes5: end while

    15 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Illustration de l’algorithme des k-means

    16 / 33

  • Algorithme des k-meanskmeans{stats}

    Propriétés� l’algorithme des k-means minimise l’inertie intra-classe W (Z) :

    T = B(Z) + W (Z)

    � T =n∑

    i=1

    d2(Xi , µ) : inertie totale du nuage de point (µ est le centre global)

    � B(Z) =K∑

    k=1

    nk d2(µk , µ) : inertie inter-classe (nk nb. obs. dans classe k )

    � W (Z) =K∑

    k=1

    ∑i=1,n:Zi=k

    d2(Xi , µk ) : inertie intra-classe

    � l’algorithme des k-means est convergeant� la solution peut dépendre de l’initialisation (⇒ en pratique on réalise

    plusieurs init. et on conserve celle minimisant W (Z))17 / 33

  • Choix du nombre de classes

    � on sait que l’inertie intra-classe W (Z) diminue lorsque K augmente� choix de K : recherche d’un coude dans la décroissance de W (Z) :

    1 2 3 4 5 6 7

    24

    68

    10

    K

    iner

    tie in

    tra−

    clas

    se

    coude

    18 / 33

  • CAH sous R

    Fonction kmeansres

  • Exercice

    Réaliser une classification automatique en 2 classes à l’aide del’algorithme de k-means sur les données suivantes :� X1 = 0� X2 = 2� X3 = 6� X4 = 11Avez-vous tous obtenus les mêmes partitions ?

    Correction sous : kmeans(c(0,2,6,11),centers=c(2,6))

    20 / 33

  • Exercice

    Réaliser une classification automatique en 2 classes à l’aide del’algorithme de k-means sur les données suivantes :� X1 = 0� X2 = 2� X3 = 6� X4 = 11Avez-vous tous obtenus les mêmes partitions ?

    Correction sous : kmeans(c(0,2,6,11),centers=c(2,6))

    20 / 33

  • Exercice d’application

    1. Réaliser un clustering du jeu de données autos.xls, en choisissantde façon adéquat le nombre de classes, sans utilisant les variablesfinition, prix et r-poid.puis.

    2. Réaliser un clustering du jeu de données iris en 3 classes, etcomparer la partition obtenue avec l’espèce des fleurs.

    21 / 33

  • Plan

    ClusteringGénéralitésMéthode des centres mobiles (k-means)Classification Ascendante Hiérarchique

    Pour aller plus loin

    22 / 33

  • Algorithme de CAH hclust{stats}

    Soit D une distance entre classe (critère d’agrégation).

    Algorithm 2 CAH1: init. : chaque singleton (observation) constitue une classe2: while plus d’une classe do3: calculer les distances D entre chaque classe 2 à 24: regrouper les deux classes les plus proches5: end while

    23 / 33

  • CAH : quel critère d’agrégation ?Soit A et B deux classes (ensembles d’individus). Soit d une distanceentre individus.� single linkage (saut minimum)

    D(A,B) = min{d(X,Y),X ∈ A,Y ∈ B}

    � complete linkage (saut maximum)

    D(A,B) = max{d(X,Y),X ∈ A,Y ∈ B}

    � distance moyenne

    D(A,B) =∑X∈A

    ∑Y∈B

    d(X,Y)#A#B

    � WardD(A,B) =

    #A#B#A +#B

    d2(µA, µB)

    où µA et µB sont les centres de gravité des classes A et B24 / 33

  • CAH : quel critère d’agrégation ?

    Propriétés des critères.� Ward agglomère les deux classes minimisant l’inertie intra-classe� Ward est sous-optimal par rapport à k-means car on se restreint à

    regrouper 2 classes parmi la partition courante� les critères du saut minimum et maximum sont peu dépendant de

    l’échelle numérique.

    25 / 33

  • CAH : représentation graphiqueOn représente le résultat d’une CAH par un dendogramme dontl’ordonnée est la valeur du critère d’agrégation.

    1

    23

    4

    5

    6

    7

    8

    7 8 5 6 4 1 2 3

    02

    46

    810

    12

    Cluster Dendrogram

    hclust (*, "ward")

    26 / 33

  • CAH sous R

    Fonction hclustd = dist(USArrests)hc

  • Exercice

    � Réaliser une CAH sur les données suivantes à l’aide des critères dusaut minimum et du saut maximum :� X1 = 0� X2 = 2� X3 = 6� X4 = 11

    � Représenter le dendogramme.� Comparer les partitions en 2 classes avec celle obtenue par les

    k-means ?

    28 / 33

  • Exercice d’application

    1. Réaliser un clustering du jeu de données autos.xls, en choisissantde façon adéquat le nombre de classes, sans utilisant les variablesfinition, prix et r-poid.puis.

    2. Réaliser un clustering du jeu de données iris en 3 classes, etcomparer la partition obtenue avec l’espèce des fleurs.

    3. Pour chaque jeu de données, comparer les partitions obtenues par laméthodes des k-means et la CAH.

    29 / 33

  • Plan

    ClusteringGénéralitésMéthode des centres mobiles (k-means)Classification Ascendante Hiérarchique

    Pour aller plus loin

    30 / 33

  • Si les données ne sont pas quantitatives

    Uniquement des variables catégorielles� solution 1 : on code les variables catégorielles en variables binaires

    (codage disjonctif)

    � puis on utilise CAH avec une distance pour données binaires :dist(...,method=’binary’)

    31 / 33

  • Si les données ne sont pas quantitatives

    Uniquement des variables catégorielles� solution 2 : on réalise une AFCM (Analyse Factorielle des

    Correspondance Multiple), puis on travaille sur les composantesprincipales qui elles sont quantitatives.

    fonction MCA FactoMineR

    Variables catégorielles + quantitatives� on réalise une Analyse Factorielle des Données Mixtes, puis on

    travaille sur les composantes principales qui elles sont quantitatives.fonction FAMD {FactoMineR}

    32 / 33

  • Encore mieux...

    Modèles de mélanges� on peut utiliser des modèles de mélanges pour réaliser un clustering

    � généralise des méthodes classiques (comme les kmeans)� apporte des outils mathématiques de choix du nombre de clusters (critère

    BIC)� permet de s’adapter à la nature des données (quantitatives,

    catégorielles...)� packages mclust et Rmixmod

    33 / 33

    ClusteringPour aller plus loin