Download - Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Transcript
Page 1: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Clustering

Julien JACQUES

Université de Lyon, Lyon 2 & ERIC EA 3083

1 / 33

Page 2: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 3: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Plan

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

Pour aller plus loin

3 / 33

Page 4: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Plan

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

Pour aller plus loin

4 / 33

Page 5: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 6: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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 unesignification 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

Page 7: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 8: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Distances entre individus

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

Distances pour données quantitatives E = Rp

On 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

Page 9: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Distances entre individus

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

Distances pour données quantitatives E = Rp

On 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

Page 10: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 11: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 12: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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(2

n

)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éesdans Z2

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

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

11 / 33

Page 13: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 14: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 15: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 16: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Plan

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

Pour aller plus loin

14 / 33

Page 17: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 18: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 19: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 20: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 21: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 22: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 23: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 24: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 25: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 26: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 27: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Illustration de l’algorithme des k-means

16 / 33

Page 28: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 29: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 30: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

CAH sous R

Fonction kmeansres <- kmeans(USArrests, centers=k, nstart= 5)

où� k est le nombre de clusters souhaité� nstart est le nombre d’initialisations de l’algorithme que l’on veut

(pour éviter de tomber sur un minimum local de l’inertie intra-classe)

19 / 33

Page 31: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 32: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 33: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 34: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Plan

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

Pour aller plus loin

22 / 33

Page 35: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 36: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 37: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 38: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 39: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

CAH sous R

Fonction hclustd = dist(USArrests)hc <- hclust(d, "ward.D2")plot(hc, hang = -1)cluster <- cutree(hc, k = 3)

où� d est une matrice de distance entre individus 2 à 2, qui peut se

calculer avec la fonction dist

� la commande cutree permet de couper l’arbre pour former k=3clusters

27 / 33

Page 40: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 41: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 42: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

Plan

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

Pour aller plus loin

30 / 33

Page 43: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 44: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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

Page 45: Clustering - Laboratoire ERIC (EA 3083)eric.univ-lyon2.fr/~jjacques/Download/Cours/Clustering.pdfClustering Définition Le clustering a pour objectif de créer des groupes d’observations

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