Fouille de données et apprentissage Farida Zehraoui Classification non supervisée - Clustering Clustering - Plan Problèmatique Soient N instances de données à k attributs, Trouver un partitionnement en c clusters (groupes) ayant un sens (Similitude) Affectation automatique de “labels” aux clusters c peut être donné, ou “découvert” Plus difficile que la classification car les classes ne sont pas connues à l’avance (non supervisé) Clustering Apprentissage non supervisé Trouver les classes naturelles (implicites) pour rassembler des données non étiquetées Qualité d’un clustering Objectifs du clustering Minimiser les distances intra-cluster Maximiser les distances inter-clusters Mesure de la similarité Choix de la distance/similarité Propriétés d’une distance : Disimilarité : distance à laquelle il manque l’inégalité triangulaire Similarité : Distance – Données numériques Distance euclidienne : Distance de Manhattan : Distance de Minkowski : k=1 : distance de Manhattan. k=2 : distance euclidienne Algorithme des K-means (K-moyennes) -Tirer aléatoirement K points pour les K moyennes initiales -A chaque étape : À chaque donnée est attribuée la plus proche des « moyennes » Re-calculer les moyennes de chaque groupe Algorithme des K-moyennes Etape 1 : Choix de k Initialisation par tirage aléatoire des k moyennes Etape 2 : Pour chaque observation xi, je cherche ck* tel que k* = argmin || xi - ck||2 c.a.d xi est dans la classe de moyenne la plus proche On a: M(i,k*) = 1 et M(i,k) = 0 pour k <> k* Etape 3 : mettre à jour les moyennes des classes dans chaque classe k définie par M(.,k), calculer la nouvelle moyenne ck Etape 4 : Si pas de stabilité, repartir à étape 2 Exemple K-moyennes, étape 1 k1 Y Choisir 3 centres de classes (au hasard) k2 k3 X Exemple K-moyennes, étape 2 k1 Y Affecter chaque point à la classe dont le centre est le plus proche k2 k3 X Exemple K-moyennes, étape 3 k1 k1 Y Déplacer chaque centre de classe vers la moyenne de chaque classe k2 k3 k2 k3 X Exemple K-moyennes, étape 4 Réaffecter les points qui sont plus proches du centre d'une autre classe Y Q : Quels sont les points qui changent de classe? k1 k3 k2 X Exemple K-moyennes, étape 4 … k1 Y R : les trois points qui changent de classe k3 k2 X Exemple K-moyennes, étape 4b k1 Y Re-calculer les moyennes des classes k3 k2 X Exemple K-moyennes, étape 5 k1 Y Déplacer les centres des classes vers les moyennes k2 k3 X Convergence On montre que l'algorithme des k-moyennes réduit à chaque étape la valeur du critère suivant : K N Jkmoy = Σ Σ || xi - ck ||2 Il y a convergence mais vers une solution optimale localement Exemple On dispose de 6 données d’expression de gènes : 0.10,0.12,0.09, 0.15,0.17,0.18 On choisit k = 2 Soit m1 = 0.12 et m2 = 0.09 les deux moyennes initiales (tirées aléatoirement) K-moyennes : Avantages K-moyennes : Inconvénients K-moyennes : Variantes Sélection des centres initiaux Calcul des similarités Calcul des centres (K-medoids : [Kaufman & Rousseeuw’87] ) K-modes : données nominales [Huang’98] K-prototype : données mixtes (numériques et nominales) La méthode des K-Medoides • Trouver des objets représentatifs (medoides) dans les clusters (au lieu de la moyenne) • Principe – Commencer avec un ensemble de medoïdes puis itérativement remplacer un par un autre si ça permet de réduire la distance globale – Efficace pour des données de petite taille Algorithme des k-Medoides Choisir arbitrairement k medoides Répéter affecter chaque objet au medoide le plus proche Choisir aléatoirement un non-medoide Oh Pour chaque medoide Oj Calculer le coût TC du remplacement de Oj par Oh Si TC < 0 alors Remplacer Oj par Oh Calculer les nouveaux clusters Finsi FinPour Jusqu’à ce ce qu’il n’y ait plus de changement Exemple Soit A={1,3,4,5,8,9}, k=2 et M={1,8} ensemble des medoides C1={1,3,4} et C2={5,8,9} E{1,8}=dist(3,1)2+dist(4,1)2+dist(5,8)2+dist(9,8)2=23 • Comparons 1 et 3M={3,8}C1={1,3,4,5} et C2={8,9} E{3,8} =dist(1,3)2+dist(4,3)2+dist(5,3)2+dist(9,8)2=10 TC = E {3,8} - E{1,8}= -13 <0 donc le remplacement est fait. • Comparons 3 et 4 M={4,8} C1 et C2 inchangés et E{4,8}=dist(1,4)2+dist(3,4)2+dist(5,4)2+dist(8,9)2= 12 3 n’est pas remplacé par 4 • Comparons 3 et 5M={5,8} C1 et C2 inchangés et E{5,8}>E{3,8} Algorithme des k-medoids (PAM) Total Cost = 20 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 Arbitrary choose k object as initial medoids Assign each remainin g object to nearest medoids 10 K=2 Randomly select a nonmedoid object,Oramdom Total Cost = 26 Do loop Until no change Swapping O and Oramdom If quality is improved. Compute total cost of swapping 10 10 9 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Algorithme des k-modes • Données catégorielles : k-modes (Huang’98) – Remplacer les moyennes des clusters par les modes – Utiliser de nouvelles mesures de dissimilarité pour manipuler les données catégorielles – Utiliser une méthode basée sur la fréquence pour mettre à jour les modes de clusters – Une mixture de données catégorielles et numériques : méthode des k-prototypes Algorithme des k-modes Algorithme des k-modes Cartes auto-organisatrices de Kohonen Objectif : clustering et visualisation des clusters Principe : on projette les données vectorielles sur une carte constituée de neurones (1, 2 dimensions) en conservant la topologie de l’espace de départ Objectif principal : - visualisation /regroupement de données 32 Algorithme • Présentation d’un vecteur d’entrée (pattern x) • Calcul de l’activation des unités de la carte • Détermination de l’unité gagnante • Renforcement des poids de l’unité gagnante et de ses • unités voisines. • Arrêt lors de la stabilisation du réseau 33 Carte auto-organisatrice (SOM) Structure prédéfinie (grille rectangulaire ou hexagonale), notion de voisinage Algorithme d‘apprentissage Sélection du gagnant : ns = Argmini d(x-wi) Adaptation des poids des neurones : wj := wj + η·hij.(xi-wj) i=(i1,i2) wi x i : |x - wi|2 minimal Algorithme d'apprentissage 1° Faire n fois : Etape 1Tirer aléatoirement uniformément un vecteur x d'entrée parmi les données S = {x1,…xn} Etape 2 Soit x le vecteur d’entrée. î = argmin || x - wi||2 L'unité î est la plus activée Etape 3 Pour toute unité j 2 Vois(î) : wj(t+1) = wj(t) + a(t). hvois(i).(x – wj(t)) 2° : Calcul de la différence entre les anciens vecteurs w et les nouveaux. On s'arrête dès que cette différence est inférieur à ε sinon retour en 1° 35 Condition de convergence vers une solution (locale) a(t) : fonction décroissante en fonction du temps (pas d’apprentissage) Vois(i) = {j, fs,i(j) > val} fs : forme d'une gaussienne définie sur la grille En 2D :Soit l'unité (i1,i2) et (j1,j2) fs,i(j)= (1/(2p) s2) exp(-[(j1 - i1)2 + (j2 - i2)2/(2s2)]) Visualisation Après apprentissage : on peut déformer la grille d’origine en visualisant les nouvelles distances entre « neurones » de la grille : i.e. trouver les points en deux dimensions qui correspondent aux distances calculées par exemple par Sammon’s mapping. Variantes et extensions importantes - Cartes évolutives : NG, GNG, GCS - cartes hiérarchiques : découverte de la complexité - Séquences temporelles : séries temporelles, … - données structurées : des arbres, Peura 1999 38 abscisse : temps (heures) ordonnée : concentration ARNm Carte topologique des profils cinétiques des gènes de la levure soumise à une irradiation [données Institut Curie] Classification hiérarchique Objectif : Grouper des objets de manière à ce que les groupes satisfassent un critère d’homogénéité Séparer les groupes de manière à ce que les groupes satisfassent un critère de séparabilité 2 types d’approches : - méthodes ascendantes (par agglomération) - méthodes descendantes (par division) Classification hiérarchique : Exemple Step 0 a Step 1 Step 2 Step 3 ab b abcde c d e Step 4 cde de Approches ascendante et descendante Approche ascendante : on part des données et on regroupe une paire de clusters(classes) à chaque étape de l'algorithme récursif Approche descendante : on part des clusters existants et on les sépare en 2 pour accroître la dissimilarité entre groupes Application à la classification de gènes Premiers résultats encourageants (depuis 1998) : - des mesures distinctes concernant le même gène se retrouvent dans le même cluster - des gènes de fonction similaire apparaissent dans le même cluster - il est possible de suggérer certaines fonctions à partir des clusters Exemple Nature Feb, 2000 Paper by Allzadeh. A et al Distinct types of diffuse large B-cell lymphoma identified by gene expression profiling Exemple (1) On dispose de 6 données d’expression de gènes : 0.10,0.12,0.09, 0.15,0.17,0.18 Au départ, on a 6 classes : {0.12}, {0.15},{0.17},{0.18},{0.10},{0.09} 1) On cherche les deux classes les plus proches : {0.17} et {0.18} 2) On les agrège en {0.17,0.18} 3) On calcule la matrice de distance entre ces 5 classes : Par exemple, par la méthode du saut minimal (simple linkage) : Entre {0.17,0.18} et {0.10}, on a : d({0.17,0.18},{0.10}) = min(d(0.17,0.10),d(0.18,0.10)) = 0.07 4) On cherche les deux classes les plus proches et ainsi de suite… Exemple de dendogramme non ré-ordonné 3 2 1 12 15 17 18 Données d’origine n = 4 (x10-2) 10 9 Ré-arrangement des feuilles : optimisation du dendogramme 15 17 18 (x10-2) 12 10 9 Comment interpréter le dendogramme Un algorithme appelé Optimal Leaf Ordering doit être Appliqué pour construire un dendogramme optimisé Différentes hiérarchies peuvent être obtenues selon la stratégie de regroupement (simple linkage,average linkage, maximal linkage) Si on perturbe légèrement les données (bruit), on affecte énormément cette hiérarchie qui n'est donc pas robuste Obtenir une classification Il faut tronquer l'arbre à un certain niveau. On peut s'aider des valeurs de distances inter-classes. Selon la méthode de regroupement, on obtient des classes très différentes Exemple de dendogramme 5.1 4.2 1.9 Données d’origine n = 4 L'algorithme de classification ascendante hiérarchique « Neighbor Joining » 1. Matrice D = (Dij ): matrice des dissimilarités entre données Initialement, les clusters (groupes) sont les singletons contenant les données 2. Trouver les groupes r et s tels que Drs = minij(Dij) 3. Fusionner les groupes r et s en un groupe t 4. Nouvelle matrice D dans laquelle r et s ont disparu et le nouveau groupe t a pour distance avec chaque groupe i, Dti: à définir 5. Répéter le processus jusqu’à trouver un seul groupe Différentes variantes pour la distance inter-classe Soient deux classes G et H Distance du lien minimal (Simple linkage) DSL(G,H) = mini 2 G,i' 2 H dii' Distance du lien maximal (Complete linkage) DCL(G,H) = maxi 2 G, i' 2 H dii' Distance moyenne (Average linkage) DGA(G,H) = (1/(nG.nH)) ∑i 2 G ∑i' 2 H dii' Méthode "simple linkage" Le "simple linkage" a tendance à combiner des classes dès que deux données de chaque classe sont très proches Indépendamment des autres données L'effet de bord est le suivant : Des données liées par une série d'observations proches vont être combinées même si elles sont éloignées Soit DG le diamètre d'une classe G : DG = maxi 2 G, i' 2 G dii' Cette méthode produit des classes de diamètre élevé Méthode "complete linkage" (saut maximal) 2 clusters G et H sont considérés comme proches si toutes les données qu'ils contiennent sont très proches L'algorithme tend à développer des clusters de faible diamètre Cependant, il peut aussi produire des clusters plus proches de certains membres d'autres clusters que des membres de leur propre cluster Méthode de la distance moyenne ("group average linkage") Compromis entre les deux autres méthodes Cependant, si on applique une transformation monotone aux distances,on peut considérablement changer le résultat alors que les 2 autres méthodes sont indépendantes par rapport à ce type de transformation. Méthodes descendantes On part d'un seul cluster G1 constitué de toutes les données On choisit la donnée la plus éloignée du cluster actuel : elle formera la première donnée du second cluster G2 On continue à transférer des données de G1 vers G2 tant qu'il existe des données de G1 plus proches en moyenne de G2 que de G1 Ensuite chaque niveau successif est obtenu en séparant un des clusters du niveau précédent Méthodes descendantes - moins étudiées - moins utilisées que les approches ascendantes Classification hiérarchique de gènes Avantages : - obtention d’un arbre (dendogramme) aspect visuel, algorithme déjà utilisé en phylogénie et en analyse de séquences Désavantages : - pas d'obtention d'un optimum (solution sous-optimale) - manque de robustesse - algorithme en O(n3) (existe version en O(n2) : Eppstein 98) - pas de partition explicite en clusters (choisir la granularité) Méthodes pour sélectionner k Qu’est ce qu’on veut ? • Un indice qui représente la : Separabilité Augmenter la confiance pour que k=2 Qu’est ce qu’on veut ? • Un indice qui représente la : Separabilité Augmenter la confiance pour que k=2 Qu’est ce qu’on veut ? • Un indice qui représente la : Separabilité Augmenter la confiance pour que k=2 Qu’est ce qu’on veut ? • Un indice qui représente la : Separabilité Augmenter la confiance pour que k=2 Qu’est ce qu’on veut ? • Un indice qui représente la : Separabilité Augmenter la confiance pour que k=2 Méthodes pour sélectionner k • Calinski and Harabasz ‘74 • Krzanowski and Lai ’85 • Hartigan ’75 • Kaufman and Rousseeuw ’90 (silhouette) Méthode Silhouette Kaufman and Rousseeuw ’90 La valeur de Silhouette d’un objet (gène) i est définie par : • ai: la moyenne des distances de i aux autres objets du même cluster • bi: la moyenne des distances de i aux autres objets du cluster le plus proche La plus grande valeur de la moyenne donne le nombre optimal de clusters. 66 Méthode Silhouette Kaufman and Rousseeuw ’90 Silhouette mesure combien les objets dans un cluster sont proches comparés aux objets qui sont dans d’autres clusters La valeur de Silhouette s(i) mesure la qualité du clustering d’un objet i Les objets dont la valeur s(i) est positive (~1) sont dans les bons clusters Les objet dont la valeur de s(i) est proche de 0 peuvent appartenir à plusieurs clusters Les objets dont la valeur s(i) est négative sont dans de mauvais clusters 67 Méthode Silhouette Kaufman and Rousseeuw ’90 k=2 k=3 68 Références M. R. Anderberg. Cluster Analysis for Applications. Academic Press, 1973. P. Arabie, L. J. Hubert, and G. De Soete. Clustering and Classification. World Scietific, 1996 A. K. Jain and R. C. Dubes. Algorithms for Clustering Data. Printice Hall, 1988 L. Kaufman and P. J. Rousseeuw. Finding Groups in Data: an Introduction to Cluster Analysis. John Wiley & Sons, 1990.