clustering - laboratoire eric (ea...
TRANSCRIPT
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