SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Clustering
Gilles Gasso - Philippe LERAY
.
INSA Rouen -Département ASI
Laboratoire LITIS
Clustering – p. 1/64
Introduction
Objectifs
• soit D = {xi ∈ Rd
}i=1,··· ,N un ensemble d’observations décrit par d attributs.
• Objectif du clustering : structuration des données en classes homogènes
On cherche à regrouper les points en clusters ou classes tels que les données
d’un cluster soient les plus similaires possibles
• Clustering : c’est de l’apprentissage non supervisé. C’est une technique
d’analyse exploratoire des données servant à résumer les informations sur les
données ou à déterminer des liens entre les points.
Exemples de classes
Clustering – p. 2/64
Introduction
Domaines d’application
Le Clustering s’applique dans plusieurs domaines
Domaine Forme des données Clusters
Text mining Textes Textes proches
Mails Dossiers automatiques
Web mining Textes et images Pages web proches
BioInformatique Gènes Gènes ressemblants
Marketing Infos clients, produits achetés Segmentation de la clientèle
Segmentation d’images Images Zones homogènes dans l’image
Web log analysis Clickstream Profils utilisateurs
Clustering – p. 3/64
Problématiques
• Nature des observations : Données binaires, textuelles, numériques, arbres, ... ?
• Notion de similarité (ou de dissimilarité) entre observations
• Définition d’un cluster
• Evaluation de la validité d’un cluster
• Nombre de clusters pouvant être identifiés dans les données
• Quels algorithmes de clustering ?
• Comparaison de différents résultats de clustering
Clustering – p. 4/64
Notions de similarité
Vocabulaire
• Mesure de dissimilarité DM : plus la mesure est faible plus les points sont
similaires (∼ distance)
• Mesure de similarité SM : plus la mesure est grande, plus les points sont
similaires
• DM = borne − SM
Notations
• Observation : xi ∈ Rd
avec xi =






xi,1
xi,2
.
.
.
xi,d






Clustering – p. 5/64
Notion de proximité
Mesure de la distance d(x1, x2) entre 2 points x1 et x2
• Distance de Minkoswski : d(x1, x2) =
Pd
j=1 |x1,j − x2,j|q
 1
q
• Distance Euclidienne correspond à q = 2 :
d(x1, x2) =
qPd
j=1 (x1,j − x2,j)2 =
p
(x1 − x2)t(x1 − x2)
• Distance de Manhattan (q = 1) : d(x1, x2) =
Pd
j=1 |x1,j − x2,j|
• distance de Sebestyen :
d2
(x1, x2) = (x1 − x2)t
W(x1 − x2)
(W= matrice diagonale de pondération)
• distance de Mahalanobis :
d2
(x1, x2) = (x1 − x2)t
C−1
(x1 − x2)
(C=matrice de variance-covariance)
• ...
Clustering – p. 6/64
Notion de proximité
Mesure de la distance d(x1, x2) entre 2 points x1 et x2
• Et si x1 et x2 sont à valeurs discrètes ?
• On peut les répresenter dans une matrice de contingence A(x1, x2) = [aij]
• x1 = [0, 1, 2, 1, 2, 1]′
et x1 = [1, 0, 2, 1, 0, 1]′
• A(x1, x2) = [0 1 2 ; 1 2 0; 1 0 1]
• distance de Hamming : nombre de places où les 2 vecteurs diffèrent :
d(x1, x2) =
d
X
i=1
d
X
j=1,j6=i
aij
• distance de Tanimoto, ...
Clustering – p. 7/64
Notion de proximité
Mesure de la distance D(C1, C2) entre 2 classes C1 et C2
• plus proche voisin : Dmin(C1, C2) = min

d(xi, xj), xi ∈ C1, xj ∈ C2
• diamètre maximum : Dmax(C1, C2) = max

d(xi, xj), xi ∈ C1, xj ∈ C2
• distance moyenne : Dmoy(C1, C2) =
P
xi∈C1
P
xj ∈C2
d(xi,xj )
n1n2
• distance des centres de gravité : Dcg(C1, C2) = d(µ1, µ2)
• distance de Ward : DWard(C1, C2) =
q
n1n2
n1+n2
d(µ1, µ2)
• ...
Clustering – p. 8/64
Evaluation de la Qualité d’un clustering
Inertie Intra-cluster
• Chaque cluster Ck est caractérisé par
• Son centre de gravité : µk = 1
Nk
P
i∈Ck
xi avec Nk = card(Ck)
• Son inertie : Jk =
P
i∈Ck
d2
(xi, µk)
L’inertie d’un cluster mesure la concentration des points du cluster autour du
centre de gravité. Plus cette inertie est faible, plus petite est la dispersion des
points autour du centre de gravité
• Sa matrice de variance-covariance : Σk =
P
i∈Ck
(xi − µk)(xi − µk)t
Remarque : on a la propriété suivante Jk = trace(Σk). L’inertie d’un cluster
représente la variance des points de ce cluster
• On désigne par inertie intra-cluster, le terme
Jw =
X
k
X
i∈Ck
d2
(xi, µk) =
X
i∈Ck
Jk
Clustering – p. 9/64
Evaluation de la Qualité d’un clustering
Inertie inter-cluster
• Soit µ le centre de gravité du nuage de points : µ = 1
N
P
i xi
• Les centres de gravité des clusters forment eux aussi un nuage de points
caractérisé par
• Inertie inter-cluster : Jb =
P
k Nkd2
(µk, µ)
L’inertie inter-cluster mesure l’éloignement des centres des clusters entre
eux. Plus cette inertie est grande, plus les clusters sont bien séparés
• Une matrice de variance-covariance inter-cluster :
Σb =
P
k(µk − µ)(µk − µ)t
Remarque : Jb = trace(Σb)
Comment obtenir une bonne partition ?
Il faut minimiser l’inertie intra-cluster et maximiser l’inertie inter-cluster
Clustering – p. 10/64
Bonne partition
• Illustration (Bisson 2001) :
inter
g
g1
g
g2
g3
g4
C1
C2
C3
C4
Inertie totale des points = Inertie Intra-cluster + Inertie Inter-cluster
Clustering – p. 11/64
Bonne partition
• Illustration (Bisson 2001) :
g1 g2
Forte inertie inter-classes
Faible inertie intra-classes
g3
g4
Faible inertie inter-classes
Forte inertie intra-classes
Clustering – p. 12/64
Approches de clustering
• Différentes approches sont possibles
• Clustering hiérachique
• Clustering hiérarchique ascendant (CHA) et variantes
• Clustering hiérarchique descendant
• Clustering par partitionnement
• Algorithme des K-moyennes et variantes
• Clustering flou
• Clustering spectral
• ...
• Clustering par modélisation
• Notion de modèles de mélange
• Algorithmes EM et variantes
Clustering – p. 13/64
CHA - principe
• Chaque point ou cluster est progressivement absorbé par le cluster le plus
proche.
• Algorithme
• Initialisation :
• Chaque individu est placé dans son propre cluster,
• Calcul de la matrice de ressemblance M entre chaque couple de clusters
(ici les points)
• Répéter
• Sélection dans M des deux clusters les plus proches CI et CJ
• Fusion de CI et CJ pour former un cluster CG
• Mise à jour de M en calculant la ressemblance entre CG et les clusters
existants
• Jusqu’à la fusion des 2 derniers clusters
Clustering – p. 14/64
CHA : principe
• Exemple (Bisson 2001)
Hiérarchie
(indicée)
C10
C1
C6
C5
C4
C3
C2
C9
C8
C7
C1
C2
C3
C4
C5
C6
C8
C10
C7
C9
i
• Schéma du milieu = dendrogramme = représentation des fusions successives
• Hauteur d’un cluster dans le dendrogramme = similarité entre les 2 clusters
avant fusion (sauf exception avec certaines mesures de similarité)...
Clustering – p. 15/64
CHA : métrique
Problème = trouver l’ultramétrique (distance entre clusters) la plus proche de la
métrique utilisée pour les individus.
• Saut minimal (single linkage) basé sur la distance Dmin(C1, C2)
• tendance à produire des classes générales (par effet de chaînage)
• sensibilité aux individus bruités.
• Saut maximal (complete linkage) basé sur la distance Dmax(C1, C2)
• tendance à produire des classes spécifiques (on ne regroupe que des classes
très proches)
• sensibilité aux individus bruités.
• Saut moyen basé sur la distance Dmoy(C1, C2)
• tendance à produire des classes de variance proche
• Barycentre basé sur la distance Dcg(C1, C2)
• bonne résistance au bruit
Clustering – p. 16/64
CHA : métrique
• Exemple (Bisson 2001)
Données (métrique : dist. Eucl.)
4
3
2
1
0
4
3
2
1
0
A
C
B
E
F
D
Saut minimal
F E A B C D
i
0,5
1,1
0,9
0,7
Saut maximal
C D A B E F
i
0,5
4,0
2,8
1,7
• Pas les mêmes résultats selon la métrique utilisée ...
Clustering – p. 17/64
CHA : ASI4 Clustering
• 26 individus d’ASI4, 2003
• Données = 5 valeurs 0/1
(inscription en IR, MGPI, DM, RNA, TIM)
• Va-t-on tirer quelque chose de ces ASI4 données ?
Saut minimal
BARO
CAST
CORD
BONV
PESQ
BOIT
TRAO
WAAG
CHAM
LEDI
BOND
SPER
GREM
CAMP
PERS
WEYC
CAPR
FOUR
GESL
JEAN
LEHO
HAUT
OHAN
RABA
RABI
ZEHN
• Pas moyen de faire de sous-groupes, tout le monde est à une distance de 0 ou 1 des autres
clusters. Clustering – p. 18/64
CHA : ASI4 Clustering : saut maximal
BARO
CAST
CORD
GREM
RABI
ZEHN
CAMP
PERS
WEYC
CAPR
FOUR
GESL
JEAN
LEHO
BOIT
TRAO
WAAG
BONV
PESQ
HAUT
OHAN
RABA
BOND
SPER
CHAM
LEDI
• En changeant de métrique, on observe plus de sous-regroupements
Clustering – p. 19/64
CHA : ASI4 Clustering
BARO
CAST
CORD
GREM
RABI
ZEHN
CAMP
PERS
WEYC
CAPR
FOUR
GESL
JEAN
LEHO
BOIT
TRAO
WAAG
BONV
PESQ
HAUT
OHAN
RABA
BOND
SPER
CHAM
LEDI
J’aime bien
le traitement
de l’information
rpmbuild −ba kernel*.spec
vive la vision
• Pour construire les clusters, on coupe l’arbre à la hauteur voulue
Clustering – p. 20/64
CHA : Autre exemple de saut maximal
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Indice des points regroupés
Distance
Dendrogramme
1
4
17
26
6
20
24
3
25
13
21
7
2
8
22
5
14
18
10
16
11
23
9
19
12
15
27
35
40
29
28
36
31
32
39
30
33
34
37
38
Clustering – p. 21/64
CHA : Autre exemple de saut maximal
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Indice des points regroupés
Distance
Dendrogramme
1
4
17
26
6
20
24
3
25
13
21
7
2
8
22
5
14
18
10
16
11
23
9
19
12
15
27
35
40
29
28
36
31
32
39
30
33
34
37
38
fusion des
clusters 7 et 8
1 2 3 4 5 6 7 8 9 10
Clustering – p. 22/64
CHA : Autre exemple de saut maximal
10 clusters
cluster 7
cluster 8
fusion des
clusters 7 et 8
étape suivante :
Clustering – p. 23/64
CHAMELEON
• Une méthode de classification hiérarchique ascendante plus évoluée
• Principe = estimer la densité intra-cluster et inter-cluster à partir du graphe des
k plus proches voisins
données graphe 1-ppv 2-ppv 3-ppv
Clustering – p. 24/64
CHAMELEON : similarité entre deux clusters
Inter-connectivité
• Inter-connectivité absolue entre 2 clusters :
EC(Ci, Cj) = ensemble des points qui relient des nœuds de Ci et de Cj
• Inter-connectivité interne d’un cluster :
EC(Ci) = plus petit ensemble qui partionne Ci en 2 sous-clusters de taille
proche
• Inter-connectivité relative : RI(Ci, Cj) =
2∗|EC(Ci,Cj )|
|EC(Ci)|+|EC(Cj )|
Proximité
• Proximité absolue entre 2 clusters :
EC(Ci, Cj) = distance moyenne entre les points de EC(Ci, Cj)
• Proximité interne d’un cluster :
EC(Ci) = distance moyenne entre les points de EC(Ci)
• Proximité relative : RC(Ci, Cj) =
(|Ci|+|Cj |)EC(Ci,Cj )
|Ci|EC(Ci)+|Cj |EC(Cj ) Clustering – p. 25/64
CHAMELEON : algorithme
• Deux phases
• trouver des sous-clusters initiaux
• en partitionnant le graphe k-ppv en m partitions solides (ou la distance
entre les points est minimisée)
• fusionner dynamiquement les sous-clusters
• en fonction de RI(Ci, Cj) et RC(Ci, Cj)
Clustering – p. 26/64
CHAMELEON : résultats
DS4
DS3
DS5
Clustering – p. 27/64
Complexité
• Classification Hierarchique Ascendante : O(n3
)
• Certaines variantes de CHA
• CURE : O(n2
) en petite dimimension, O(n2
+ nm log n) sinon (en
commençant avec m clusters)
• CHAMELEON :
• graphe k-ppv : O(n log n) en petite dim. sinon O(n2
)
• clustering : O(nm + n log n + m2
log m)
Clustering – p. 28/64
Classification Hiérarchique Descendante
• Principe :
• Sélection du cluster le moins cohérent
• Subdivision du cluster le moins cohérent
• Problème :
• Pour réaliser la subdivision, il faut souvent faire une classification
hierarchique ascendante pour savoir quelle est la meilleure façon de séparer
les points
• Algorithme beaucoup moins attractif que l’autre
Clustering – p. 29/64
Approches de clustering
• Clustering hiérachique
• Clustering hiérarchique ascendant (CHA) et variantes
• Clustering hiérarchique descendant
• Clustering par partitionnement
• Algorithme des K-moyennes et variantes
• Clustering flou
• Clustering spectral
• ...
• Clustering par modélisation
• Notion de modèles de mélange
• Algorithmes EM et variantes
Clustering – p. 30/64
Clustering par partitionnement
Objectifs
• N données D = {xi ∈ Rd
}i=1,··· ,N disponibles
• Recherche d’une partition en K  N clusters Ck, k = 1, · · · , K de ces données
• Approche directe
• Construire toutes les partitions possibles
• Evaluer la qualité de chaque clustering clustering et retenir la meilleure
partition
• Souci : problème NP difficile car le nombre de partitions possibles augmente
exponentiellement
#Clusters =
1
K!
K
X
k=1
(−1)K−k
CK
k kN
Pour N = 10 et K = 4, on a 34105 partitions possibles !
Clustering – p. 31/64
Clustering par partitionnement
Solution plus pratique
• Minimisation de l’inertie intra-classe Jw =
PK
k=1
P
i∈Ck
d2
(xi, µk)
• Eviter l’énumération exhaustive de toutes les partitions possibles
• Utilisation d’une approche heuristique donnant au moins une bonne partition et
pas nécessairement la partition optimale au sens de Jw
Un algorithme très connu : algorithmes des K-means (ou centres mobiles)
• Si on connait les centres de gravité µk, k = 1, · · · , K, on affecte un point xi à
un cluster et un seul. Le point est affecté au cluster Cℓ dont le centre µℓ est le
plus proche
• Connaissant les clusters Ck, k = 1, · · · , K, on estime leur centre de gravité
• On alterne ainsi l’affectation des points aux clusters et l’estimation des centres
de gravité jusqu’à convergence du critère
Clustering – p. 32/64
K-Means : algorithme
• Initialiser les centres µ1, · · · µK
• Répeter
• Affectation de chaque point à son cluster le plus proche
Cℓ ← xi tel que ℓ = arg min
k
d(xi, µk)
• Recalculer le centre µk de chaque cluster
µk =
1
Nk
X
i∈Ck
xi avec Nk = card(Ck)
• Tant que k ∆µ k ǫ
Complexité : O(KnI) pour I : itérations
Clustering – p. 33/64
K-Means : illustration [S. Roweis, 2003]
Clustering en K = 2 classes
Données Initialisation Itération 1
Itération 2 Itération 3 Itération 4
Clustering – p. 34/64
K-Means : exemple
K = 2 K = 3
K = 4 K = 5
K = 6 K = 7
Clustering – p. 35/64
K-Means : exemple
K = 2 K = 3
K = 4 K = 5
K = 6 K = 7
Clustering – p. 36/64
K-Means : exemple
K = 6
Clustering – p. 37/64
K-Means : exemple
K = 10
Clustering – p. 38/64
K-Means : exemple
K = 10
Clustering – p. 39/64
K-Means : Remarques et problèmes
• On montre qu’à chaque itération de l’algorithme le critère Jw diminue.
• L’algorithme converge au moins vers un minimum local de Jw
• Convergence rapide
• Initialisation des µk :
• aléatoirement dans l’intervalle de définition des xi
• aléatoirement dans l’ensemble des xi
• Des initialisations différentes peuvent mener à des clusters différents
(problèmes de minima locaux)
• Méthode générale pour obtenir des clusters stables = formes fortes
• On répète l’algorithme r fois
• On regroupe ensemble les xi qui se retrouvent toujours dans les mêmes
clusters.
• Choix du nombre de clusters : problème difficile
• Fixé a priori (exple : on veut découper une clientèle en K segments)
• Chercher la meilleure partition pour différents K  1 et chercher un coude
au niveau de la décroissance de Jw(K)
• Imposer des contraintes sur le volume ou la densité des clusters obtenus
Clustering – p. 40/64
K-Means : formes fortes
• Illustration (Bisson 2001) :
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
4 “formes fortes”
C1
C2
C’1
C’2
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
F1
F2
F4
F3
ications
Clustering – p. 41/64
K-Means : formes fortes
• K-Means répété 6 fois
K = 3 K = 3
K = 3 K = 3
K = 3 K = 3
Clustering – p. 42/64
K-Means : formes fortes
• On trouve 5 regroupements de points différents :
F1 F2 F3 F4 F5
Ni 2040 1940 49 2042 1929
• F3 n’est pas représentatif
• F1, F1, F4 et F5 sont les formes fortes
• on peut recalculer les clusters à partir des centres des formes fortes
Clustering – p. 43/64
K-Means : formes fortes
• K-Means répété 6 fois
4 Formes fortes pour K = 3
Clustering – p. 44/64
K-Means séquentiels
• Adaptation des K-means lorsque les exemples arrivent au fur et à mesure
• Initialiser µ1, · · · µK
• Initialiser n1, · · · nK à 0
• Répeter
• acquérir x
• affectation de chaque point à son cluster le plus proche
Cℓ ← xi tel que ℓ = arg min
k
d(x, µk)
• incrémenter nℓ
• recalculer le centre µℓ de ce cluster
µℓ = µℓ +
1
nℓ
(x − µℓ)
Remarque
Si on dispose d’une partition initiale, on utilisera les centres des clusters et on
initialisera nk = card(Ck), k = 1, · · · , K Clustering – p. 45/64
Variantes de K-means
K-means flous
• Ici un point xi peut appartenir à plusieurs clusters !
• Par contre, pour chaque cluster Ck, on lui associe un degré d’appartenance zi,k
tel que 0 ≤ zi,k ≤ 1 et
PK
k=1 zi,k = 1
• On minimise le critère intra-classe suivant Jw =
P
k
PN
i=1 zγ
i,kd2
(xi, µk) avec
γ  1.
γ règle le degré de flou. Plus γ est grand, plus les clusters trouvés se
recouvrent.
Nuées Dynamiques (Diday 1972, 1974)
• Généralisation des K-Means
• Utilisation de noyaux = représentation d’un cluster
• barycentre ( = µ pour les K-means)
• n points représentatifs
• Hyperplan
• ...
Clustering – p. 46/64
Approches de clustering
• Clustering hiérachique
• Clustering hiérarchique ascendant (CHA) et variantes
• Clustering hiérarchique descendant
• Clustering par partitionnement
• Algorithme des K-moyennes et variantes
• Clustering flou
• Clustering spectral
• ...
• Clustering par modélisation
• Notion de modèles de mélange
• Algorithmes EM et variantes
Clustering – p. 47/64
Clustering par modélisation statistique
Introduction par l’exemple
• Considérons N données {xi ∈ Rd
}i=1,··· ,N formant deux classes
−3 −2 −1 0 1 2 3 4 5 6
−2
−1
0
1
2
3
4
5
6
Données des deux classes
−3 −2 −1 0 1 2 3 4 5 6
−2
−1
0
1
2
3
4
5
6
Données des deux classes et contours des classes
• On veut trouver le modèle statistique des données.
• On constate que pour modéliser les données, il faut deux distributions
gaussiennes
Clustering – p. 48/64
Clustering par modélisation statistique
Introduction par l’exemple
• Dans la classe 1, les données suivent une loi normale i.e. N(X; µ1, Σ1) où X
désignent une variable aléatoire. Dans la classe 2, X suit N(X; µ2, Σ2)
• Loi marginale de X
f(X) = f(X, Z = 1) + f(X, Z = 2)
= f(X/Z = 1) Pr(Z = 1) + f(X/Z = 2) Pr(Z = 2) d’après Bayes
f(X) = π1f(X/Z = 1) + π2f(X/Z = 2)
avec f(X/Z = 1) ≡ N(X; µ1, Σ1), f(X/Z = 2) ≡ N(X; µ2, Σ2)
• π1 et π2 désignent la probabilité a priori que X relève resp. de la classe C1 et
C2. Remarque : on a π1 + π2 = 1
• f(X/Z = 1) et f(X/Z = 2) désignent la densité conditionnelle de X
respectivement à Z = 1 et Z = 2
• f(X) est entièrement déterminé par la connaissance de πj, µj, Σj, j ∈ {1, 2}.
On l’appelle modèle de mélange de densités Clustering – p. 49/64
Modèle de mélange : illustration
Modèle de mélange gaussien
f(X) = π1N(X; µ1, Σ1) + π2N(X; µ2, Σ2) avec π1 + π2 = 1
−3 −2 −1 0 1 2 3 4 5 6
−2
−1
0
1
2
3
4
5
6
Données des deux classes et loi sous−jacente
−6 −4 −2 0 2 4 6
−5
0
5
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
Loi en 3−D
Clustering – p. 50/64
Du modèle de mélange au clustering
Quel intérêt d’avoir le modèle statistique pour faire du clustering ?
• Si on connait le modèle de mélange, on connait les probabilités à priori πj et les
lois conditionnelles f(X/Z = j), j ∈ {1, 2}
• D’après le théorème de Bayes, on en déduit les probabilités a posteriori
d’appartenance à C1 et C2
Pr(Z = 1/X = x) =
π1f(X = x/Z = 1)
f(X = x)
Pr(Z = 2/X = x) =
π2f(X = x/Z = 2)
f(X = x)
Remarque : on a Pr(Z = 1/X = x) + Pr(Z = 2/X = x) = 1
• Le point x est affecté à la classe de plus grande probabilité a posteriori
C1 ← x si Pr(Z = 1/X = x)  Pr(Z = 2/X = x)
C2 ← x sinon
Clustering – p. 51/64
Du modèle de mélange au clustering
Comparaison avec K-means
K-means Approche modélisation
Modèle - Modèle de mélanges
f(X) =
PK
k=1 πkf(X/Z = k)
Paramètres à estimer Centres des clusters Proba a priori πk
µk, k = 1, · · · , K Paramètres des lois f(X/Z = k)
Critère optimisé Variance intra-classe Log-Vraisemblance
Indice d’affectation d(x, µk) Proba a posteriori Pr(Z = k/X = x)
Règle d’affectation de x Cluster dont le centre Cluster de plus grande
est le plus proche proba a posteriori
Clustering – p. 52/64
Estimation des paramètres du modèle
Retour à l’exemple
Modèle de mélange gaussien
f(X) = π1N(X; µ1, Σ1) + π2N(X; µ2, Σ2)
• Paramètres à estimer : π1, π2, µ1, Σ1, µ2 et Σ2
• On regroupe tous les paramètres du modèle de mélange dans le vecteur θ :
θ =
h
π1, π2, µ⊤
1 , Σ1(:)⊤
, µ2, Σ2(:)⊤
i⊤
• Comment estimer les paramètres à partir des données ?
Maximiser la vraisemblance (ou le log de la vraisemblance)
Clustering – p. 53/64
Notion de vraisemblance
• Supposons des données {xi}i=1,··· ,N i.i.d. (identiquement et indépendamment
distribuées). Ces données suivent une loi f(X; θ) de paramètres θ
• Vraisemblance
Λ(θ; x1, · · · , xN ) =
N
Y
i=1
f(X = xi; θ)
• En général on utilise la Log-vraisemblance
L(θ; x1, · · · , xN ) = log (Λ(θ; x1, · · · , xN ))
=
N
X
i=1
log(f(X = xi; θ))
Clustering – p. 54/64
Maximisation de la vraisemblance
• On considère de façon générale le problème suivant
max
θ
L(θ; x1, · · · , xN ) = max
θ
N
X
i=1
log(f(X = xi; θ))
Approche directe
• La solution θ̂ du problème précédent vérifie ∇L(θ̂; x1, · · · , xN ) = 0
• Pas de solution analytique en général
• Problème d’optimisation difficile en général
• Il existe des cas simples où la solution analytique existe comme par exemple
l’estimation des paramètres d’une loi normale
Clustering – p. 55/64
Maximisation de la vraisemblance
Approche directe : exemple de solution analytique
• Supposons des données gaussiennes {xi ∈ R2
}i=1,··· ,N i.i.d. Elles suivent
donc la loi
N(X/µ, Σ) =
1
p
(2π)d|Σ|
exp

−
1
2
(X − µ)⊤
Σ−1
(X − µ)

avec d = 2
• La Log-vraisemblance est
L(µ, Σ; x1, · · · , xN ) = −
1
2
N log((2π)d
|Σ|) −
1
2
N
X
i=1
(xi − µ)⊤
Σ−1
(xi − µ)
• Par dérivation de L, on trouve l’estimation des paramètres µ et Σ au sens du
maximum de vraisemblance
µ̂ =
1
N
N
X
i=1
xi, Σ̂ =
1
N
N
X
i=1
(xi − µ̂)(xi − µ̂)⊤
Clustering – p. 56/64
Maximisation de la vraisemblance
Approche directe : exemple où la solution analytique n’existe pas
• Log-Vraisemblance du modèle de mélange de deux gaussiennes
L(θ/x1, · · · , xN ) =
N
X
i=1
log(π1N(xi; µ1, Σ1) + π2N(xi; µ2, Σ2))
• Solution non analytique à cause du log de la somme des termes πjN(x/µj, Σj)
• Le problème dans le cas du mélange des 2 gaussiennes vient du fait qu’on ne
connait pas a priori le cluster auquel appartient le point xi
• Que se passe-t-il si on a cette information ?
On peut construire une démarche itérative : c’est l’algorithme EM
Clustering – p. 57/64
EM par l’exemple
Existe-t-il une parade dans l’exemple du mélange de gaussiennes ?
• Que se passe-t-il si on se donne arbitrairement l’appartenance de xi à un
cluster ?
On définit la log-vraisemblance complétée
Lc(θ; {xi, zi}i=1,··· ,N ) =
N
X
i=1
zi log(π1N(xi; µ1, Σ1))+(1−zi) log(π2 N(xi; µ2, Σ2))
avec zi = 1 si xi ∈ C1 et zi = 0 si xi ∈ C2
Il est alors possible de déterminer π̂j, µ̂j et Σ̂j analytiquement
• Problème : nous avons pris arbitrairement les inconnus zi !
Clustering – p. 58/64
EM par l’exemple
Comment on s’en sort ?
• On prend l’espérance conditionnelle de Lc
Esp(Lc/{xi}i=1,··· ,N ) =
N
X
i=1
Esp(zi/xi) log(π1N(xi; µ1, Σ1))
+(1 − Esp(zi/xi)) log(π2 N(xi; µ2, Σ2))
• Esp(zi/xi) = Pr(zi = 1/xi) est la probabilité a posteriori que xi ∈ C1
• D’après la loi de Bayes
Pr(zi = 1/xi) =
Pr(zi = 1)f(xi/zi = 1)
f(xi)
Pr(zi = 1/xi) =
π1N(xi; µ1, Σ1)
π1N(xi; µ1, Σ1) + π2 N(xi; µ2, Σ2)
• Si on connait les paramètres, on peut calculer les probabilités a posteriori.
Connaissant Pr(zi = 1/xi), on peut calculer les paramètres. EM : approche
itérative alternant calcul des Pr(z = 1/x ) et calcul des paramètres Clustering – p. 59/64
EM appliqué au mélange de 2 gaussiennes
L’algorithme
• Initialiser les paramètres π1, µ1, Σ1, π2, µ2, Σ2 (Rmq : π1 + π2 = 1)
• Répeter
• Etape E (Expectation) : calcul des probabilités a posteriori
γ
(1)
i = Pr(zi = 1/xi) =
π1N(xi; µ1, Σ1)
π1N(xi; µ1, Σ1) + π2 N(xi; µ2, Σ2)
, i = 1, · · · , N
Rmq : γ
(2)
i = Pr(zi = 0/xi) = 1 − γ
(1)
i : proba a posteriori que xi ∈ C2
• Etape M (Maximisation) : calcul des paramètres
µj =
PN
i=1 γ
(j)
i xi
PN
i=1 γ
(j)
i
, Σj =
PN
i=1 γ
(j)
i (xi − µj)(xi − µj)⊤
PN
i=1 γ
(j)
i
, πj =
PN
i=1 γ
(j)
i
N
j ∈ {1, 2}
• Jusqu’à convergence
Du modèle de mélange au clustering
• Après convergence, on dispose des paramètres. On affecte le point xi au cluster
Cj tel que γ
(j)
soit maximal Clustering – p. 60/64
EM appliqué au mélange de 2 gaussiennes
Illustration [S. Sankararam]
Initialisation Init : Etape E Iteration 1
Itération 2 Itération 5 Itération 20
Clustering – p. 61/64
Extensions au cas général
Modèle de mélange
f(x) =
K
X
k=1
πkf (x; θk) avec
K
X
k=1
πk = 1
Algorithme EM
• A l’étape E d’une itération, on calcule les proba a posteriori de xi ∈ Ck
γ
(k)
i =
πkf (xi; θk)
PK
k=1 πkf (x; θk)
, i = 1, · · · , N, et k = 1, · · · , K
Rmq :
PK
k=1 γ
(k)
i = 1
• Etape M : on calcule les paramètres θk et πk par maximisation de
Esp(Lc/{xi}i=1,··· ,N ). Si on a un modèle de mélange de K  2 gaussiennes,
on calcule les paramètres en utilisant les résultats de l’exemple
Clustering – p. 62/64
Remarques sur EM
• Convergence vers un extremum local (convergence globale non garantie)
• Critère de convergence possible : variation de la log-vraisemblance
• On montre qu’à chaque étape, on améliore la log-vraisemblance
• Initialisation : aléatoire ou utilisation de résultats a priori (comme par l’exemple
faire K-means sur les données et utiliser ces résultats pour initialiser
l’algorithme)
• Des initialisations différentes peuvent donner des paramètres différents
• Il existe des variantes de EM pour le clustering dont le CEM (Classification -
Expeectation - Maximisation)
Clustering – p. 63/64
Variante de EM : CEM
• Initialiser les paramètres θk et πk, k = 1, · · · , K
• Répéter
• Etape E : calculer les probabilités a posteriori γ
(k)
i , ∀ i = 1, · · · , N et
∀ k = 1, · · · , K
• Etape C : classification des points
Ck ← xi si k = argℓ max γ
(ℓ)
i
Modification des proba a posteriori
γ
(k)
i = 1 et γ
(ℓ)
i = 0, ∀ ℓ 6= k
• Etape M : calcul des paramètres par la procédure usuelle en utilisant les
proba a posteriori modifiées
• Jusqu’à convergence
Remarque : A la fin de l’algorithme, on obtient directement les clusters
Clustering – p. 64/64

Contenu connexe

Similaire à toaz.info-clustering-1-pr_7c021feec2e58f2cfdcdf6fe5c0cfc03.pdf

melange de gaussienne
melange de gaussiennemelange de gaussienne
melange de gaussienneomri med
 
Xavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionXavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionKezhan SHI
 
Modelisation non supervisee
Modelisation non superviseeModelisation non supervisee
Modelisation non superviseeminiloka
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdfimane26
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications Ibrahim Chegrane
 
Presentation - Automated Variable Weighting in k-Means Type Clustering
Presentation - Automated Variable Weighting in k-Means Type ClusteringPresentation - Automated Variable Weighting in k-Means Type Clustering
Presentation - Automated Variable Weighting in k-Means Type ClusteringFranck Dernoncourt
 
cours traitements d'image segmentation.pdf
cours traitements d'image segmentation.pdfcours traitements d'image segmentation.pdf
cours traitements d'image segmentation.pdfBrahimDehri1
 
Intro_DeepLearning.pdf
Intro_DeepLearning.pdfIntro_DeepLearning.pdf
Intro_DeepLearning.pdfAmou5
 
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...Hajer Trabelsi
 
Performances dans la segmentation d’images médicales
Performances dans la segmentation d’images médicalesPerformances dans la segmentation d’images médicales
Performances dans la segmentation d’images médicalesEL-Hachemi Guerrout
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisinsBoris Guarisma
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
Présentation Colloque : Mesures locales pour la classification de graphes de ...
Présentation Colloque : Mesures locales pour la classification de graphes de ...Présentation Colloque : Mesures locales pour la classification de graphes de ...
Présentation Colloque : Mesures locales pour la classification de graphes de ...Romain Chion
 

Similaire à toaz.info-clustering-1-pr_7c021feec2e58f2cfdcdf6fe5c0cfc03.pdf (20)

Formation traitement d_images
Formation traitement d_imagesFormation traitement d_images
Formation traitement d_images
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
melange de gaussienne
melange de gaussiennemelange de gaussienne
melange de gaussienne
 
Xavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionXavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régression
 
Modelisation non supervisee
Modelisation non superviseeModelisation non supervisee
Modelisation non supervisee
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdf
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications
 
Presentation - Automated Variable Weighting in k-Means Type Clustering
Presentation - Automated Variable Weighting in k-Means Type ClusteringPresentation - Automated Variable Weighting in k-Means Type Clustering
Presentation - Automated Variable Weighting in k-Means Type Clustering
 
Clustering
ClusteringClustering
Clustering
 
cours traitements d'image segmentation.pdf
cours traitements d'image segmentation.pdfcours traitements d'image segmentation.pdf
cours traitements d'image segmentation.pdf
 
Intro_DeepLearning.pdf
Intro_DeepLearning.pdfIntro_DeepLearning.pdf
Intro_DeepLearning.pdf
 
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
 
Performances dans la segmentation d’images médicales
Performances dans la segmentation d’images médicalesPerformances dans la segmentation d’images médicales
Performances dans la segmentation d’images médicales
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisins
 
Clustering.pdf
Clustering.pdfClustering.pdf
Clustering.pdf
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Théorie des distributions
Théorie des distributionsThéorie des distributions
Théorie des distributions
 
Présentation Colloque : Mesures locales pour la classification de graphes de ...
Présentation Colloque : Mesures locales pour la classification de graphes de ...Présentation Colloque : Mesures locales pour la classification de graphes de ...
Présentation Colloque : Mesures locales pour la classification de graphes de ...
 
Knn
KnnKnn
Knn
 

toaz.info-clustering-1-pr_7c021feec2e58f2cfdcdf6fe5c0cfc03.pdf

  • 1. Clustering Gilles Gasso - Philippe LERAY . INSA Rouen -Département ASI Laboratoire LITIS Clustering – p. 1/64
  • 2. Introduction Objectifs • soit D = {xi ∈ Rd }i=1,··· ,N un ensemble d’observations décrit par d attributs. • Objectif du clustering : structuration des données en classes homogènes On cherche à regrouper les points en clusters ou classes tels que les données d’un cluster soient les plus similaires possibles • Clustering : c’est de l’apprentissage non supervisé. C’est une technique d’analyse exploratoire des données servant à résumer les informations sur les données ou à déterminer des liens entre les points. Exemples de classes Clustering – p. 2/64
  • 3. Introduction Domaines d’application Le Clustering s’applique dans plusieurs domaines Domaine Forme des données Clusters Text mining Textes Textes proches Mails Dossiers automatiques Web mining Textes et images Pages web proches BioInformatique Gènes Gènes ressemblants Marketing Infos clients, produits achetés Segmentation de la clientèle Segmentation d’images Images Zones homogènes dans l’image Web log analysis Clickstream Profils utilisateurs Clustering – p. 3/64
  • 4. Problématiques • Nature des observations : Données binaires, textuelles, numériques, arbres, ... ? • Notion de similarité (ou de dissimilarité) entre observations • Définition d’un cluster • Evaluation de la validité d’un cluster • Nombre de clusters pouvant être identifiés dans les données • Quels algorithmes de clustering ? • Comparaison de différents résultats de clustering Clustering – p. 4/64
  • 5. Notions de similarité Vocabulaire • Mesure de dissimilarité DM : plus la mesure est faible plus les points sont similaires (∼ distance) • Mesure de similarité SM : plus la mesure est grande, plus les points sont similaires • DM = borne − SM Notations • Observation : xi ∈ Rd avec xi =       xi,1 xi,2 . . . xi,d       Clustering – p. 5/64
  • 6. Notion de proximité Mesure de la distance d(x1, x2) entre 2 points x1 et x2 • Distance de Minkoswski : d(x1, x2) = Pd j=1 |x1,j − x2,j|q 1 q • Distance Euclidienne correspond à q = 2 : d(x1, x2) = qPd j=1 (x1,j − x2,j)2 = p (x1 − x2)t(x1 − x2) • Distance de Manhattan (q = 1) : d(x1, x2) = Pd j=1 |x1,j − x2,j| • distance de Sebestyen : d2 (x1, x2) = (x1 − x2)t W(x1 − x2) (W= matrice diagonale de pondération) • distance de Mahalanobis : d2 (x1, x2) = (x1 − x2)t C−1 (x1 − x2) (C=matrice de variance-covariance) • ... Clustering – p. 6/64
  • 7. Notion de proximité Mesure de la distance d(x1, x2) entre 2 points x1 et x2 • Et si x1 et x2 sont à valeurs discrètes ? • On peut les répresenter dans une matrice de contingence A(x1, x2) = [aij] • x1 = [0, 1, 2, 1, 2, 1]′ et x1 = [1, 0, 2, 1, 0, 1]′ • A(x1, x2) = [0 1 2 ; 1 2 0; 1 0 1] • distance de Hamming : nombre de places où les 2 vecteurs diffèrent : d(x1, x2) = d X i=1 d X j=1,j6=i aij • distance de Tanimoto, ... Clustering – p. 7/64
  • 8. Notion de proximité Mesure de la distance D(C1, C2) entre 2 classes C1 et C2 • plus proche voisin : Dmin(C1, C2) = min d(xi, xj), xi ∈ C1, xj ∈ C2 • diamètre maximum : Dmax(C1, C2) = max d(xi, xj), xi ∈ C1, xj ∈ C2 • distance moyenne : Dmoy(C1, C2) = P xi∈C1 P xj ∈C2 d(xi,xj ) n1n2 • distance des centres de gravité : Dcg(C1, C2) = d(µ1, µ2) • distance de Ward : DWard(C1, C2) = q n1n2 n1+n2 d(µ1, µ2) • ... Clustering – p. 8/64
  • 9. Evaluation de la Qualité d’un clustering Inertie Intra-cluster • Chaque cluster Ck est caractérisé par • Son centre de gravité : µk = 1 Nk P i∈Ck xi avec Nk = card(Ck) • Son inertie : Jk = P i∈Ck d2 (xi, µk) L’inertie d’un cluster mesure la concentration des points du cluster autour du centre de gravité. Plus cette inertie est faible, plus petite est la dispersion des points autour du centre de gravité • Sa matrice de variance-covariance : Σk = P i∈Ck (xi − µk)(xi − µk)t Remarque : on a la propriété suivante Jk = trace(Σk). L’inertie d’un cluster représente la variance des points de ce cluster • On désigne par inertie intra-cluster, le terme Jw = X k X i∈Ck d2 (xi, µk) = X i∈Ck Jk Clustering – p. 9/64
  • 10. Evaluation de la Qualité d’un clustering Inertie inter-cluster • Soit µ le centre de gravité du nuage de points : µ = 1 N P i xi • Les centres de gravité des clusters forment eux aussi un nuage de points caractérisé par • Inertie inter-cluster : Jb = P k Nkd2 (µk, µ) L’inertie inter-cluster mesure l’éloignement des centres des clusters entre eux. Plus cette inertie est grande, plus les clusters sont bien séparés • Une matrice de variance-covariance inter-cluster : Σb = P k(µk − µ)(µk − µ)t Remarque : Jb = trace(Σb) Comment obtenir une bonne partition ? Il faut minimiser l’inertie intra-cluster et maximiser l’inertie inter-cluster Clustering – p. 10/64
  • 11. Bonne partition • Illustration (Bisson 2001) : inter g g1 g g2 g3 g4 C1 C2 C3 C4 Inertie totale des points = Inertie Intra-cluster + Inertie Inter-cluster Clustering – p. 11/64
  • 12. Bonne partition • Illustration (Bisson 2001) : g1 g2 Forte inertie inter-classes Faible inertie intra-classes g3 g4 Faible inertie inter-classes Forte inertie intra-classes Clustering – p. 12/64
  • 13. Approches de clustering • Différentes approches sont possibles • Clustering hiérachique • Clustering hiérarchique ascendant (CHA) et variantes • Clustering hiérarchique descendant • Clustering par partitionnement • Algorithme des K-moyennes et variantes • Clustering flou • Clustering spectral • ... • Clustering par modélisation • Notion de modèles de mélange • Algorithmes EM et variantes Clustering – p. 13/64
  • 14. CHA - principe • Chaque point ou cluster est progressivement absorbé par le cluster le plus proche. • Algorithme • Initialisation : • Chaque individu est placé dans son propre cluster, • Calcul de la matrice de ressemblance M entre chaque couple de clusters (ici les points) • Répéter • Sélection dans M des deux clusters les plus proches CI et CJ • Fusion de CI et CJ pour former un cluster CG • Mise à jour de M en calculant la ressemblance entre CG et les clusters existants • Jusqu’à la fusion des 2 derniers clusters Clustering – p. 14/64
  • 15. CHA : principe • Exemple (Bisson 2001) Hiérarchie (indicée) C10 C1 C6 C5 C4 C3 C2 C9 C8 C7 C1 C2 C3 C4 C5 C6 C8 C10 C7 C9 i • Schéma du milieu = dendrogramme = représentation des fusions successives • Hauteur d’un cluster dans le dendrogramme = similarité entre les 2 clusters avant fusion (sauf exception avec certaines mesures de similarité)... Clustering – p. 15/64
  • 16. CHA : métrique Problème = trouver l’ultramétrique (distance entre clusters) la plus proche de la métrique utilisée pour les individus. • Saut minimal (single linkage) basé sur la distance Dmin(C1, C2) • tendance à produire des classes générales (par effet de chaînage) • sensibilité aux individus bruités. • Saut maximal (complete linkage) basé sur la distance Dmax(C1, C2) • tendance à produire des classes spécifiques (on ne regroupe que des classes très proches) • sensibilité aux individus bruités. • Saut moyen basé sur la distance Dmoy(C1, C2) • tendance à produire des classes de variance proche • Barycentre basé sur la distance Dcg(C1, C2) • bonne résistance au bruit Clustering – p. 16/64
  • 17. CHA : métrique • Exemple (Bisson 2001) Données (métrique : dist. Eucl.) 4 3 2 1 0 4 3 2 1 0 A C B E F D Saut minimal F E A B C D i 0,5 1,1 0,9 0,7 Saut maximal C D A B E F i 0,5 4,0 2,8 1,7 • Pas les mêmes résultats selon la métrique utilisée ... Clustering – p. 17/64
  • 18. CHA : ASI4 Clustering • 26 individus d’ASI4, 2003 • Données = 5 valeurs 0/1 (inscription en IR, MGPI, DM, RNA, TIM) • Va-t-on tirer quelque chose de ces ASI4 données ? Saut minimal BARO CAST CORD BONV PESQ BOIT TRAO WAAG CHAM LEDI BOND SPER GREM CAMP PERS WEYC CAPR FOUR GESL JEAN LEHO HAUT OHAN RABA RABI ZEHN • Pas moyen de faire de sous-groupes, tout le monde est à une distance de 0 ou 1 des autres clusters. Clustering – p. 18/64
  • 19. CHA : ASI4 Clustering : saut maximal BARO CAST CORD GREM RABI ZEHN CAMP PERS WEYC CAPR FOUR GESL JEAN LEHO BOIT TRAO WAAG BONV PESQ HAUT OHAN RABA BOND SPER CHAM LEDI • En changeant de métrique, on observe plus de sous-regroupements Clustering – p. 19/64
  • 20. CHA : ASI4 Clustering BARO CAST CORD GREM RABI ZEHN CAMP PERS WEYC CAPR FOUR GESL JEAN LEHO BOIT TRAO WAAG BONV PESQ HAUT OHAN RABA BOND SPER CHAM LEDI J’aime bien le traitement de l’information rpmbuild −ba kernel*.spec vive la vision • Pour construire les clusters, on coupe l’arbre à la hauteur voulue Clustering – p. 20/64
  • 21. CHA : Autre exemple de saut maximal 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 Indice des points regroupés Distance Dendrogramme 1 4 17 26 6 20 24 3 25 13 21 7 2 8 22 5 14 18 10 16 11 23 9 19 12 15 27 35 40 29 28 36 31 32 39 30 33 34 37 38 Clustering – p. 21/64
  • 22. CHA : Autre exemple de saut maximal 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 Indice des points regroupés Distance Dendrogramme 1 4 17 26 6 20 24 3 25 13 21 7 2 8 22 5 14 18 10 16 11 23 9 19 12 15 27 35 40 29 28 36 31 32 39 30 33 34 37 38 fusion des clusters 7 et 8 1 2 3 4 5 6 7 8 9 10 Clustering – p. 22/64
  • 23. CHA : Autre exemple de saut maximal 10 clusters cluster 7 cluster 8 fusion des clusters 7 et 8 étape suivante : Clustering – p. 23/64
  • 24. CHAMELEON • Une méthode de classification hiérarchique ascendante plus évoluée • Principe = estimer la densité intra-cluster et inter-cluster à partir du graphe des k plus proches voisins données graphe 1-ppv 2-ppv 3-ppv Clustering – p. 24/64
  • 25. CHAMELEON : similarité entre deux clusters Inter-connectivité • Inter-connectivité absolue entre 2 clusters : EC(Ci, Cj) = ensemble des points qui relient des nœuds de Ci et de Cj • Inter-connectivité interne d’un cluster : EC(Ci) = plus petit ensemble qui partionne Ci en 2 sous-clusters de taille proche • Inter-connectivité relative : RI(Ci, Cj) = 2∗|EC(Ci,Cj )| |EC(Ci)|+|EC(Cj )| Proximité • Proximité absolue entre 2 clusters : EC(Ci, Cj) = distance moyenne entre les points de EC(Ci, Cj) • Proximité interne d’un cluster : EC(Ci) = distance moyenne entre les points de EC(Ci) • Proximité relative : RC(Ci, Cj) = (|Ci|+|Cj |)EC(Ci,Cj ) |Ci|EC(Ci)+|Cj |EC(Cj ) Clustering – p. 25/64
  • 26. CHAMELEON : algorithme • Deux phases • trouver des sous-clusters initiaux • en partitionnant le graphe k-ppv en m partitions solides (ou la distance entre les points est minimisée) • fusionner dynamiquement les sous-clusters • en fonction de RI(Ci, Cj) et RC(Ci, Cj) Clustering – p. 26/64
  • 28. Complexité • Classification Hierarchique Ascendante : O(n3 ) • Certaines variantes de CHA • CURE : O(n2 ) en petite dimimension, O(n2 + nm log n) sinon (en commençant avec m clusters) • CHAMELEON : • graphe k-ppv : O(n log n) en petite dim. sinon O(n2 ) • clustering : O(nm + n log n + m2 log m) Clustering – p. 28/64
  • 29. Classification Hiérarchique Descendante • Principe : • Sélection du cluster le moins cohérent • Subdivision du cluster le moins cohérent • Problème : • Pour réaliser la subdivision, il faut souvent faire une classification hierarchique ascendante pour savoir quelle est la meilleure façon de séparer les points • Algorithme beaucoup moins attractif que l’autre Clustering – p. 29/64
  • 30. Approches de clustering • Clustering hiérachique • Clustering hiérarchique ascendant (CHA) et variantes • Clustering hiérarchique descendant • Clustering par partitionnement • Algorithme des K-moyennes et variantes • Clustering flou • Clustering spectral • ... • Clustering par modélisation • Notion de modèles de mélange • Algorithmes EM et variantes Clustering – p. 30/64
  • 31. Clustering par partitionnement Objectifs • N données D = {xi ∈ Rd }i=1,··· ,N disponibles • Recherche d’une partition en K N clusters Ck, k = 1, · · · , K de ces données • Approche directe • Construire toutes les partitions possibles • Evaluer la qualité de chaque clustering clustering et retenir la meilleure partition • Souci : problème NP difficile car le nombre de partitions possibles augmente exponentiellement #Clusters = 1 K! K X k=1 (−1)K−k CK k kN Pour N = 10 et K = 4, on a 34105 partitions possibles ! Clustering – p. 31/64
  • 32. Clustering par partitionnement Solution plus pratique • Minimisation de l’inertie intra-classe Jw = PK k=1 P i∈Ck d2 (xi, µk) • Eviter l’énumération exhaustive de toutes les partitions possibles • Utilisation d’une approche heuristique donnant au moins une bonne partition et pas nécessairement la partition optimale au sens de Jw Un algorithme très connu : algorithmes des K-means (ou centres mobiles) • Si on connait les centres de gravité µk, k = 1, · · · , K, on affecte un point xi à un cluster et un seul. Le point est affecté au cluster Cℓ dont le centre µℓ est le plus proche • Connaissant les clusters Ck, k = 1, · · · , K, on estime leur centre de gravité • On alterne ainsi l’affectation des points aux clusters et l’estimation des centres de gravité jusqu’à convergence du critère Clustering – p. 32/64
  • 33. K-Means : algorithme • Initialiser les centres µ1, · · · µK • Répeter • Affectation de chaque point à son cluster le plus proche Cℓ ← xi tel que ℓ = arg min k d(xi, µk) • Recalculer le centre µk de chaque cluster µk = 1 Nk X i∈Ck xi avec Nk = card(Ck) • Tant que k ∆µ k ǫ Complexité : O(KnI) pour I : itérations Clustering – p. 33/64
  • 34. K-Means : illustration [S. Roweis, 2003] Clustering en K = 2 classes Données Initialisation Itération 1 Itération 2 Itération 3 Itération 4 Clustering – p. 34/64
  • 35. K-Means : exemple K = 2 K = 3 K = 4 K = 5 K = 6 K = 7 Clustering – p. 35/64
  • 36. K-Means : exemple K = 2 K = 3 K = 4 K = 5 K = 6 K = 7 Clustering – p. 36/64
  • 37. K-Means : exemple K = 6 Clustering – p. 37/64
  • 38. K-Means : exemple K = 10 Clustering – p. 38/64
  • 39. K-Means : exemple K = 10 Clustering – p. 39/64
  • 40. K-Means : Remarques et problèmes • On montre qu’à chaque itération de l’algorithme le critère Jw diminue. • L’algorithme converge au moins vers un minimum local de Jw • Convergence rapide • Initialisation des µk : • aléatoirement dans l’intervalle de définition des xi • aléatoirement dans l’ensemble des xi • Des initialisations différentes peuvent mener à des clusters différents (problèmes de minima locaux) • Méthode générale pour obtenir des clusters stables = formes fortes • On répète l’algorithme r fois • On regroupe ensemble les xi qui se retrouvent toujours dans les mêmes clusters. • Choix du nombre de clusters : problème difficile • Fixé a priori (exple : on veut découper une clientèle en K segments) • Chercher la meilleure partition pour différents K 1 et chercher un coude au niveau de la décroissance de Jw(K) • Imposer des contraintes sur le volume ou la densité des clusters obtenus Clustering – p. 40/64
  • 41. K-Means : formes fortes • Illustration (Bisson 2001) : x x x x x x x x x x x x x x x x x 4 “formes fortes” C1 C2 C’1 C’2 x x x x x x x x x x x x x x x x x F1 F2 F4 F3 ications Clustering – p. 41/64
  • 42. K-Means : formes fortes • K-Means répété 6 fois K = 3 K = 3 K = 3 K = 3 K = 3 K = 3 Clustering – p. 42/64
  • 43. K-Means : formes fortes • On trouve 5 regroupements de points différents : F1 F2 F3 F4 F5 Ni 2040 1940 49 2042 1929 • F3 n’est pas représentatif • F1, F1, F4 et F5 sont les formes fortes • on peut recalculer les clusters à partir des centres des formes fortes Clustering – p. 43/64
  • 44. K-Means : formes fortes • K-Means répété 6 fois 4 Formes fortes pour K = 3 Clustering – p. 44/64
  • 45. K-Means séquentiels • Adaptation des K-means lorsque les exemples arrivent au fur et à mesure • Initialiser µ1, · · · µK • Initialiser n1, · · · nK à 0 • Répeter • acquérir x • affectation de chaque point à son cluster le plus proche Cℓ ← xi tel que ℓ = arg min k d(x, µk) • incrémenter nℓ • recalculer le centre µℓ de ce cluster µℓ = µℓ + 1 nℓ (x − µℓ) Remarque Si on dispose d’une partition initiale, on utilisera les centres des clusters et on initialisera nk = card(Ck), k = 1, · · · , K Clustering – p. 45/64
  • 46. Variantes de K-means K-means flous • Ici un point xi peut appartenir à plusieurs clusters ! • Par contre, pour chaque cluster Ck, on lui associe un degré d’appartenance zi,k tel que 0 ≤ zi,k ≤ 1 et PK k=1 zi,k = 1 • On minimise le critère intra-classe suivant Jw = P k PN i=1 zγ i,kd2 (xi, µk) avec γ 1. γ règle le degré de flou. Plus γ est grand, plus les clusters trouvés se recouvrent. Nuées Dynamiques (Diday 1972, 1974) • Généralisation des K-Means • Utilisation de noyaux = représentation d’un cluster • barycentre ( = µ pour les K-means) • n points représentatifs • Hyperplan • ... Clustering – p. 46/64
  • 47. Approches de clustering • Clustering hiérachique • Clustering hiérarchique ascendant (CHA) et variantes • Clustering hiérarchique descendant • Clustering par partitionnement • Algorithme des K-moyennes et variantes • Clustering flou • Clustering spectral • ... • Clustering par modélisation • Notion de modèles de mélange • Algorithmes EM et variantes Clustering – p. 47/64
  • 48. Clustering par modélisation statistique Introduction par l’exemple • Considérons N données {xi ∈ Rd }i=1,··· ,N formant deux classes −3 −2 −1 0 1 2 3 4 5 6 −2 −1 0 1 2 3 4 5 6 Données des deux classes −3 −2 −1 0 1 2 3 4 5 6 −2 −1 0 1 2 3 4 5 6 Données des deux classes et contours des classes • On veut trouver le modèle statistique des données. • On constate que pour modéliser les données, il faut deux distributions gaussiennes Clustering – p. 48/64
  • 49. Clustering par modélisation statistique Introduction par l’exemple • Dans la classe 1, les données suivent une loi normale i.e. N(X; µ1, Σ1) où X désignent une variable aléatoire. Dans la classe 2, X suit N(X; µ2, Σ2) • Loi marginale de X f(X) = f(X, Z = 1) + f(X, Z = 2) = f(X/Z = 1) Pr(Z = 1) + f(X/Z = 2) Pr(Z = 2) d’après Bayes f(X) = π1f(X/Z = 1) + π2f(X/Z = 2) avec f(X/Z = 1) ≡ N(X; µ1, Σ1), f(X/Z = 2) ≡ N(X; µ2, Σ2) • π1 et π2 désignent la probabilité a priori que X relève resp. de la classe C1 et C2. Remarque : on a π1 + π2 = 1 • f(X/Z = 1) et f(X/Z = 2) désignent la densité conditionnelle de X respectivement à Z = 1 et Z = 2 • f(X) est entièrement déterminé par la connaissance de πj, µj, Σj, j ∈ {1, 2}. On l’appelle modèle de mélange de densités Clustering – p. 49/64
  • 50. Modèle de mélange : illustration Modèle de mélange gaussien f(X) = π1N(X; µ1, Σ1) + π2N(X; µ2, Σ2) avec π1 + π2 = 1 −3 −2 −1 0 1 2 3 4 5 6 −2 −1 0 1 2 3 4 5 6 Données des deux classes et loi sous−jacente −6 −4 −2 0 2 4 6 −5 0 5 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 Loi en 3−D Clustering – p. 50/64
  • 51. Du modèle de mélange au clustering Quel intérêt d’avoir le modèle statistique pour faire du clustering ? • Si on connait le modèle de mélange, on connait les probabilités à priori πj et les lois conditionnelles f(X/Z = j), j ∈ {1, 2} • D’après le théorème de Bayes, on en déduit les probabilités a posteriori d’appartenance à C1 et C2 Pr(Z = 1/X = x) = π1f(X = x/Z = 1) f(X = x) Pr(Z = 2/X = x) = π2f(X = x/Z = 2) f(X = x) Remarque : on a Pr(Z = 1/X = x) + Pr(Z = 2/X = x) = 1 • Le point x est affecté à la classe de plus grande probabilité a posteriori C1 ← x si Pr(Z = 1/X = x) Pr(Z = 2/X = x) C2 ← x sinon Clustering – p. 51/64
  • 52. Du modèle de mélange au clustering Comparaison avec K-means K-means Approche modélisation Modèle - Modèle de mélanges f(X) = PK k=1 πkf(X/Z = k) Paramètres à estimer Centres des clusters Proba a priori πk µk, k = 1, · · · , K Paramètres des lois f(X/Z = k) Critère optimisé Variance intra-classe Log-Vraisemblance Indice d’affectation d(x, µk) Proba a posteriori Pr(Z = k/X = x) Règle d’affectation de x Cluster dont le centre Cluster de plus grande est le plus proche proba a posteriori Clustering – p. 52/64
  • 53. Estimation des paramètres du modèle Retour à l’exemple Modèle de mélange gaussien f(X) = π1N(X; µ1, Σ1) + π2N(X; µ2, Σ2) • Paramètres à estimer : π1, π2, µ1, Σ1, µ2 et Σ2 • On regroupe tous les paramètres du modèle de mélange dans le vecteur θ : θ = h π1, π2, µ⊤ 1 , Σ1(:)⊤ , µ2, Σ2(:)⊤ i⊤ • Comment estimer les paramètres à partir des données ? Maximiser la vraisemblance (ou le log de la vraisemblance) Clustering – p. 53/64
  • 54. Notion de vraisemblance • Supposons des données {xi}i=1,··· ,N i.i.d. (identiquement et indépendamment distribuées). Ces données suivent une loi f(X; θ) de paramètres θ • Vraisemblance Λ(θ; x1, · · · , xN ) = N Y i=1 f(X = xi; θ) • En général on utilise la Log-vraisemblance L(θ; x1, · · · , xN ) = log (Λ(θ; x1, · · · , xN )) = N X i=1 log(f(X = xi; θ)) Clustering – p. 54/64
  • 55. Maximisation de la vraisemblance • On considère de façon générale le problème suivant max θ L(θ; x1, · · · , xN ) = max θ N X i=1 log(f(X = xi; θ)) Approche directe • La solution θ̂ du problème précédent vérifie ∇L(θ̂; x1, · · · , xN ) = 0 • Pas de solution analytique en général • Problème d’optimisation difficile en général • Il existe des cas simples où la solution analytique existe comme par exemple l’estimation des paramètres d’une loi normale Clustering – p. 55/64
  • 56. Maximisation de la vraisemblance Approche directe : exemple de solution analytique • Supposons des données gaussiennes {xi ∈ R2 }i=1,··· ,N i.i.d. Elles suivent donc la loi N(X/µ, Σ) = 1 p (2π)d|Σ| exp − 1 2 (X − µ)⊤ Σ−1 (X − µ) avec d = 2 • La Log-vraisemblance est L(µ, Σ; x1, · · · , xN ) = − 1 2 N log((2π)d |Σ|) − 1 2 N X i=1 (xi − µ)⊤ Σ−1 (xi − µ) • Par dérivation de L, on trouve l’estimation des paramètres µ et Σ au sens du maximum de vraisemblance µ̂ = 1 N N X i=1 xi, Σ̂ = 1 N N X i=1 (xi − µ̂)(xi − µ̂)⊤ Clustering – p. 56/64
  • 57. Maximisation de la vraisemblance Approche directe : exemple où la solution analytique n’existe pas • Log-Vraisemblance du modèle de mélange de deux gaussiennes L(θ/x1, · · · , xN ) = N X i=1 log(π1N(xi; µ1, Σ1) + π2N(xi; µ2, Σ2)) • Solution non analytique à cause du log de la somme des termes πjN(x/µj, Σj) • Le problème dans le cas du mélange des 2 gaussiennes vient du fait qu’on ne connait pas a priori le cluster auquel appartient le point xi • Que se passe-t-il si on a cette information ? On peut construire une démarche itérative : c’est l’algorithme EM Clustering – p. 57/64
  • 58. EM par l’exemple Existe-t-il une parade dans l’exemple du mélange de gaussiennes ? • Que se passe-t-il si on se donne arbitrairement l’appartenance de xi à un cluster ? On définit la log-vraisemblance complétée Lc(θ; {xi, zi}i=1,··· ,N ) = N X i=1 zi log(π1N(xi; µ1, Σ1))+(1−zi) log(π2 N(xi; µ2, Σ2)) avec zi = 1 si xi ∈ C1 et zi = 0 si xi ∈ C2 Il est alors possible de déterminer π̂j, µ̂j et Σ̂j analytiquement • Problème : nous avons pris arbitrairement les inconnus zi ! Clustering – p. 58/64
  • 59. EM par l’exemple Comment on s’en sort ? • On prend l’espérance conditionnelle de Lc Esp(Lc/{xi}i=1,··· ,N ) = N X i=1 Esp(zi/xi) log(π1N(xi; µ1, Σ1)) +(1 − Esp(zi/xi)) log(π2 N(xi; µ2, Σ2)) • Esp(zi/xi) = Pr(zi = 1/xi) est la probabilité a posteriori que xi ∈ C1 • D’après la loi de Bayes Pr(zi = 1/xi) = Pr(zi = 1)f(xi/zi = 1) f(xi) Pr(zi = 1/xi) = π1N(xi; µ1, Σ1) π1N(xi; µ1, Σ1) + π2 N(xi; µ2, Σ2) • Si on connait les paramètres, on peut calculer les probabilités a posteriori. Connaissant Pr(zi = 1/xi), on peut calculer les paramètres. EM : approche itérative alternant calcul des Pr(z = 1/x ) et calcul des paramètres Clustering – p. 59/64
  • 60. EM appliqué au mélange de 2 gaussiennes L’algorithme • Initialiser les paramètres π1, µ1, Σ1, π2, µ2, Σ2 (Rmq : π1 + π2 = 1) • Répeter • Etape E (Expectation) : calcul des probabilités a posteriori γ (1) i = Pr(zi = 1/xi) = π1N(xi; µ1, Σ1) π1N(xi; µ1, Σ1) + π2 N(xi; µ2, Σ2) , i = 1, · · · , N Rmq : γ (2) i = Pr(zi = 0/xi) = 1 − γ (1) i : proba a posteriori que xi ∈ C2 • Etape M (Maximisation) : calcul des paramètres µj = PN i=1 γ (j) i xi PN i=1 γ (j) i , Σj = PN i=1 γ (j) i (xi − µj)(xi − µj)⊤ PN i=1 γ (j) i , πj = PN i=1 γ (j) i N j ∈ {1, 2} • Jusqu’à convergence Du modèle de mélange au clustering • Après convergence, on dispose des paramètres. On affecte le point xi au cluster Cj tel que γ (j) soit maximal Clustering – p. 60/64
  • 61. EM appliqué au mélange de 2 gaussiennes Illustration [S. Sankararam] Initialisation Init : Etape E Iteration 1 Itération 2 Itération 5 Itération 20 Clustering – p. 61/64
  • 62. Extensions au cas général Modèle de mélange f(x) = K X k=1 πkf (x; θk) avec K X k=1 πk = 1 Algorithme EM • A l’étape E d’une itération, on calcule les proba a posteriori de xi ∈ Ck γ (k) i = πkf (xi; θk) PK k=1 πkf (x; θk) , i = 1, · · · , N, et k = 1, · · · , K Rmq : PK k=1 γ (k) i = 1 • Etape M : on calcule les paramètres θk et πk par maximisation de Esp(Lc/{xi}i=1,··· ,N ). Si on a un modèle de mélange de K 2 gaussiennes, on calcule les paramètres en utilisant les résultats de l’exemple Clustering – p. 62/64
  • 63. Remarques sur EM • Convergence vers un extremum local (convergence globale non garantie) • Critère de convergence possible : variation de la log-vraisemblance • On montre qu’à chaque étape, on améliore la log-vraisemblance • Initialisation : aléatoire ou utilisation de résultats a priori (comme par l’exemple faire K-means sur les données et utiliser ces résultats pour initialiser l’algorithme) • Des initialisations différentes peuvent donner des paramètres différents • Il existe des variantes de EM pour le clustering dont le CEM (Classification - Expeectation - Maximisation) Clustering – p. 63/64
  • 64. Variante de EM : CEM • Initialiser les paramètres θk et πk, k = 1, · · · , K • Répéter • Etape E : calculer les probabilités a posteriori γ (k) i , ∀ i = 1, · · · , N et ∀ k = 1, · · · , K • Etape C : classification des points Ck ← xi si k = argℓ max γ (ℓ) i Modification des proba a posteriori γ (k) i = 1 et γ (ℓ) i = 0, ∀ ℓ 6= k • Etape M : calcul des paramètres par la procédure usuelle en utilisant les proba a posteriori modifiées • Jusqu’à convergence Remarque : A la fin de l’algorithme, on obtient directement les clusters Clustering – p. 64/64