Clustering - ASI

39 downloads 166 Views 5MB Size Report
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 ?
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 Text mining Web mining BioInformatique Marketing Segmentation d’images Web log analysis

Forme des données Textes Mails Textes et images Gènes Infos clients, produits achetés Images Clickstream

Clusters Textes proches Dossiers automatiques Pages web proches Gènes ressemblants Segmentation de la clientèle Zones homogènes dans l’image 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 P

d j=1 |x1,j

• Distance de Minkoswski : d(x1 , x2 ) = • Distance Euclidienne correspond à q = 2 : d(x1 , x2 ) =

qP

d j=1 (x1,j

− x2,j

)2

=

p

− x2,j |

q

 q1

(x1 − x2 )t (x1 − x2 )

• Distance de Manhattan (q = 1) : d(x1 , x2 ) = Pdj=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

d X

aij

i=1 j=1,j6=i

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



n1 n2

• distance des centres de gravité : Dcg (C1 , C2 ) = d(µ1 , µ2 ) • distance de Ward : DWard (C1 , C2 ) =

q

n1 n2 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 = Pi∈C d2 (xi , µk ) 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 = Pi∈C (xi − µk )(xi − µk )t k

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 X

k i∈Ck

2

d (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 = Pk Nk d2 (µ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 : P t Σb = k (µk − µ)(µk − µ) 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 inter

• Illustration (Bisson 2001) :

C1 g1

C3 g3

C2 g

g g2

Inertie totale des points

=

g4

C4

Inertie Intra-cluster + Inertie Inter-cluster

Clustering – p. 11/64

Bonne partition • Illustration (Bisson 2001) :

Forte inertie inter-classes Faible inertie intra-classes

Faible inertie inter-classes Forte inertie intra-classes g3

g1

g2 g4

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

i

C8

C9

C2

C8

C6

C7 C5

C2

C4 C9

C6 C3

C10

C5

C3

C1

C7

C4 C1

• 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

Saut minimal

Saut maximal

i

D C

i

1,1

4,0

0,9

2,8

0,7

1,7

3

E 2

F B

1

A 0,5

0

0

1

2

3

4

0,5

F

E

A

B

C

D

C

D

A

B

E

F

• 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



RABI

ZEHN

RABA

OHAN

HAUT

JEAN

LEHO

GESL

FOUR

CAPR

PERS

WEYC

CAMP

SPER

GREM

LEDI

BOND

CHAM

WAAG

BOIT

TRAO

PESQ

BONV

CAST

CORD

BARO

(inscription en IR, MGPI, DM, RNA, TIM) • Va-t-on tirer quelque chose de ces ASI4 données ? Saut minimal

Pas moyen de faire de sous-groupes, tout le monde est à une distance de 0 ou 1 des autres clusters.

Clustering – p. 18/64



LEDI

CHAM

SPER

BOND

RABA

OHAN

HAUT

PESQ

BONV

WAAG

TRAO

BOIT

LEHO

JEAN

GESL

FOUR

CAPR

WEYC

PERS

CAMP

ZEHN

RABI

GREM

CORD

CAST

BARO

CHA : ASI4 Clustering : saut maximal

En changeant de métrique, on observe plus de sous-regroupements Clustering – p. 19/64

CHA : ASI4 Clustering



LEDI

CHAM

SPER

BOND

RABA

OHAN

HAUT

PESQ

BONV

WAAG

TRAO

BOIT

LEHO

JEAN

GESL

FOUR

CAPR

WEYC

PERS

CAMP

ZEHN

rpmbuild −ba kernel*.spec

RABI

GREM

CORD

CAST

BARO

vive la vision

J’aime bien le traitement de l’information

Pour construire les clusters, on coupe l’arbre à la hauteur voulue Clustering – p. 20/64

CHA : Autre exemple de saut maximal Dendrogramme 1.8

1.6

1.4

1

0.8

0.6

0.4

0.2

0

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

Distance

1.2

Indice des points regroupés

Clustering – p. 21/64

CHA : Autre exemple de saut maximal Dendrogramme 1.8

1.6

1.4 fusion des clusters 7 et 8

1

0.8

0.6 1

2

3

4

5

6

7

8

9

10

0.4

0.2

0

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

Distance

1.2

Indice des points regroupés

Clustering – p. 22/64

CHA : Autre exemple de saut maximal 10 clusters

cluster 7

cluster 8

étape suivante :

fusion des clusters 7 et 8

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

DS3

DS4

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 K 1 X #Clusters = (−1)K−k CkK kN K! k=1

Pour N = 10 et K = 4, on a 34105 partitions possibles !

Clustering – p. 31/64

Clustering par partitionnement Solution plus pratique P 2 • Minimisation de l’inertie intra-classe Jw = PK d (xi , µk ) k=1 i∈Ck

• 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 d(xi , µk ) k

• Recalculer le centre µk de chaque cluster 1 X µk = xi Nk

avec Nk = card(Ck )

i∈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) :

C1

x x x

ications

x

x

x x

C’ 2

F1

x

4 “formes fortes”

x

F2

x

x x

x

x x

x

C’ 1

x x

x x

x

x

x

x x

x

x

x

C2

F3

x x x

x

F4

x x

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 :

Ni

F1 2040

F2 1940

F3 49

F4 2042

F5 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 d(x, µk ) k

• incrémenter nℓ • recalculer le centre µℓ de ce cluster µℓ = µℓ +

1 (x − µℓ ) nℓ

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

γ 2 • On minimise le critère intra-classe suivant Jw = Pk PN z i=1 i,k d (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 Données des deux classes

Données des deux classes et contours des classes

6

6

5

5

4

4

3

3

2

2

1

1

0

0

−1

−1

−2 −3

−2

−1

0

1

2

3

4

5

6

−2 −3

−2

−1

0

1

2

3

4

5

6

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

=

f (X, Z = 1) + f (X, Z = 2)

=

f (X/Z = 1) Pr(Z = 1) + f (X/Z = 2) Pr(Z = 2)

=

π1 f (X/Z = 1) + π2 f (X/Z = 2)

avec f (X/Z = 1) ≡ N (X; µ1 , Σ1 ),

d’après Bayes

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)

π1 N (X; µ1 , Σ1 ) + π2 N (X; µ2 , Σ2 )

=

Données des deux classes et loi sous−jacente

π1 + π2 = 1

avec

Loi en 3−D

6 0.04

5

0.035 0.03

4

0.025

3

0.02 0.015

2

0.01

1

0.005

0

5

−1 −2 −3

0

−2

−1

0

1

2

3

4

5

6

−5 −6

−4

−2

0

2

4

6

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)

=

π1 f (X = x/Z = 1) f (X = x)

Pr(Z = 2/X = x)

=

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

C2

←x

si Pr(Z = 1/X = x) > Pr(Z = 2/X = x) sinon Clustering – p. 51/64

Du modèle de mélange au clustering Comparaison avec K-means

Paramètres à estimer

Centres des clusters µk , k = 1, · · · , K

Approche modélisation Modèle de mélanges P f (X) = K k=1 πk f (X/Z = k) Proba a priori π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 est le plus proche

Cluster de plus grande proba a posteriori

Modèle

K-means -

Clustering – p. 52/64

Estimation des paramètres du modèle Retour à l’exemple Modèle de mélange gaussien f (X) = π1 N (X; µ1 , Σ1 ) + π2 N (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

f (X = xi ; θ)

i=1

• En général on utilise la Log-vraisemblance L(θ; x1 , · · · , xN )

=

log (Λ(θ; x1 , · · · , xN ))

=

N X

log(f (X = xi ; θ))

i=1

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

log(f (X = xi ; θ))

i=1

Approche directe ˆ x1 , · · · , xN ) = 0 • La solution θˆ du problème précédent vérifie ∇L(θ;

• 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  1 1 N (X/µ, Σ) = p exp − (X − µ)⊤ Σ−1 (X − µ) 2 (2π)d |Σ| 

avec d = 2

• La Log-vraisemblance est N 1 1X d L(µ, Σ; x1 , · · · , xN ) = − N log((2π) |Σ|) − (xi − µ)⊤ Σ−1 (xi − µ) 2 2 i=1

• Par dérivation de L, on trouve l’estimation des paramètres µ et Σ au sens du maximum de vraisemblance N 1 X µ ˆ= xi , N i=1

N X 1 ˆ= Σ (xi − µ ˆ)(xi − µ ˆ)⊤ N i=1

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

log(π1 N (xi ; µ1 , Σ1 ) + π2 N (xi ; µ2 , Σ2 ))

i=1

• Solution non analytique à cause du log de la somme des termes πj N (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

zi log(π1 N (xi ; µ1 , Σ1 ))+(1−zi ) log(π2 N (xi ; µ2 , Σ2 ))

i=1

avec zi = 1 si xi ∈ C1

et

zi = 0 si xi ∈ C2

ˆ j analytiquement Il est alors possible de déterminer π ˆj , µ ˆj et Σ

• 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

Esp(zi /xi ) log(π1 N (xi ; µ1 , Σ1 ))

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

=

π1 N (xi ; µ1 , Σ1 ) π1 N (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 ) = (2)

Rmq : γi

π1 N (xi ; µ1 , Σ1 ) , π1 N (xi ; µ1 , Σ1 ) + π2 N (xi ; µ2 , Σ2 ) (1)

= Pr(zi = 0/xi ) = 1 − γi

i = 1, · · · , N

: proba a posteriori que xi ∈ C2

• Etape M (Maximisation) : calcul des paramètres µj =

(j) γ i=1 i xi , Σj PN (j) i=1 γi

PN

=

(j) γ i=1 i (xi − µj )(xi PN (j) γ i=1 i

PN



− µj )

, πj =

PN

(j)

i=1 γ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 f (x; θk )

k=1

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

Rmq :

PK

π f (xi ; θk ) , = PKk k=1 πk f (x; θk ) (k)

k=1 γi

i = 1, · · · , N, et k = 1, · · · , K

=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 = 1, · · · , N et i ∀ k = 1, · · · , K

• Etape C : classification des points Ck ← xi

(ℓ)

k = argℓ max γi

si

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