Clustering - Laboratoire ERIC (EA...

Post on 19-Feb-2020

6 views 0 download

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

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

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

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

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

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

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