2 Techniques de Classification Sommaire • Introduction • Classification hiérarchique • Méthodes de partitionnement ▫ K-Moyenne ▫ FCM • Classification par densité ▫ DBSCAN • Discussion Lotfi Ben Romdhane, Ph.D. DSI / ESST / US/ Tn 3 Introduction (1) • Plusieurs noms: clustering, classification, classement, ... • Un ensemble de méthodes permettant de créer des groupes à partir d’un ensemble de données tels que: ▫ les données qui appartiennent au même groupe sont similaires ▫ les données appartenant à des groupes différents sont dissimilaires 4 Introduction (2) • Plusieurs applications en pratique • Les données de puces ADN ▫ les gènes qui sont similaires admettent dans l’organisme des fonctions identiques • Compression des données ▫ Les données qui se trouvent dans un groupe sont similaires et peuvent être remplacée par une seule valeur 5 Introduction (3) 6 Introduction (4) • Segmentation des Images: diviser une image en un ensemble de régions homogènes Hiérarchiques ▫ Compression des images pour la transmission: représenter chaque région par un seul point (pixel) ▫ Reconnaissance des formes: appariement d’une forme (par exemple le visage d’une personne) avec les régions de l’image (ensembles des visages dans l’image) Bottom-Up Top-Down Partitionnement Méthodes de classification K-Means FCM Basées sur la densité DBSCAN 7 Formulation du problème (1) • On considère D = {X1, X2, …, Xn} un ensemble de n points (données) • Xi = {xi,1, xi,2, …, xi,l} une donnée vecteur de dimension l, c'est-à-dire possédant l attributs participant à sa définition • Soit dist une mesure de distance 8 Formulation du problème (2) • La classification consiste à trouver un ensemble de groupes {C1,C2, …, Cc }; dits aussi clusters; tel que la distance entre des données du même groupe est plus petite que la distance entre deux données appartenant à deux groupes différents dist (xi , x j ) < dist ( xi , xk ); ∀xi , x j , xk ∈ D / {x , x }∈ C i j m ∧ xk ∉ C m 9 Formulation du problème (3) Formulation du problème (4) • Une distance défini sur un ensemble E est une application : d : E×E→ℜ+ possédant les propriétés suivantes ▫ Symétrie ∀x, y ∈ E; d ( x, y ) = d ( y, x) ▫ Séparabilité ∀x, y ∈ E; d ( x, y ) = 0 ⇔ x = y 10 • Distance Euclidienne dist ( X i , X j ) = ∑ (x l k =1 − x j ,k ) 2 i ,k • Distance de Manhattan l dist ( X i , X j ) = ∑ xi ,k − x j ,k ▫ Inégalité triangulaire k =1 ∀x, y, z ∈ E ; d ( x, z ) ≤ d ( x, y ) + d ( y, z ) 11 12 Formulation du problème (5) • Distance Edit ▫ nombre d’opérations élémentaires (insertions, suppression, …) pour changer un objet (chaîne de caractères, graphe) vers un autre • Distance de Jaccard (pour les ensembles) dist ( A, B) 2 = A∪ B − A∩ B A∪ B Classification hiérarchique 13 Notions de base (1) Notions de base (2) • La classification hiérarchique permet de produire une hiérarchie de groupes • La coupure du dendrogramme à un niveau particulier génère un partitionnement différent ▫ chaque niveau de la hiérarchie représente un partitionnement différent ▫ peut-être modélisé à l’aide d’un arbre hiérarchique appelé dendrogramme 0.2 0.15 0.2 0.1 0.15 0.05 0.1 0 5 6 4 3 14 4 2 5 2 1 3 1 3 2 5 4 6 0.05 1 Partitionnement = { {x1, x3} ; {x2, x5} ; {x4} ; {x6} } 0 1 3 2 5 4 6 15 Notions de base (3) • Le dendrogramme peut-être généré selon deux approches différentes • approche ascendante (bottom-up) ▫ dite aussi agglomérative ▫ partir d’un partitionnement dans lequel chaque donnée forme un groupe à part ▫ à chaque étape (niveau du dendrogramme), fusionner les deux groupes les plus proches ▫ s’arrêter lorsqu’on obtient un seul groupe 16 Notions de base (4) • approche descendante (top-down) ▫ dite aussi divisive ▫ partir avec un seul groupe contenant toutes les données ▫ à chaque étape, diviser le groupe le plus mauvais ▫ s’arrêter lorsqu’on obtient chaque donnée est dans un groupe à part 18 17 Distance (1) Distance (2) ▫ complete-linkage : MAX • Une question qui se pose : comment mesurer la distance entre les groupes ? ▫ single-linkage : MIN dist(g1,g2) = points les plus éloignés dist(g1,g2) = points les plus proches 19 Distance (3) 20 Distance (4) ▫ average-linkage : MOYENNE ▫ centroid-linkage : centre des classes dist(g1,g2) = moyenne des distances définir le centroide de chaque groupe (moyenne des données qu’elle contient) prendre la distance entre les centroides 21 Méthodes ascendantes (1) • Le calcul des distances entre les groupes est un point central qui permet de distinguer la majorité des algorithmes existants 22 Méthodes ascendantes (2) Algorithme de base • UPGMA : utilise la moyenne (average-linkage) DEBUT • dist(A,B),C = (distAC + distBC) / 2 = 4 • dist(A,B),D = (distAD + distBD) / 2 = 6 • dist(A,B),E = (distAE + distBE) / 2 = 6 • dist(A,B),F = (distAF + distBF) / 2 = 8 ▫ mettre chaque donnée dans un ▫ UPGMA (Unweighted Pair Group Method with Arithmetic Mean ) ▫ CHAMELEON ▫ ROCK (RObust Clustering using linKs) ▫ CURE (Clustering Using REpresentatives) groupe à part ▫ Répéter 2 A B 1. fusionner les deux groupes A,B les plus proches C 2. mettre à jour la matrice des distances entre les groupes ▫ Jusqu’à (la formation d’un seul groupe) FIN. C D B C D E F A 2 4 6 6 8 étape 1 4 6 E 6 6 4 F 8 8 8 8 D E étape 2 23 4 étape 3 étape 4 C 4 6 8 D,E 6 8 D,E AB,C D,E 6 F 8 C A B 6 D E C A B 8 étape 5 6 ABCDE F 8 F D 4 4 E 24 Méthodes ascendantes (4) Méthodes ascendantes (3) A,B C D,E F 4 6 6 6 6 4 8 8 8 8 E 4 D 6 B C D E 2 C A B 26 25 Méthodes descendantes (1) Méthodes descendantes (2) Algorithme de base • Il y a plusieurs méthodes de DEBUT classification qui diffèrent par le ▫ mettre toutes les données dans un seul groupe choix du groupe à diviser ▫ Répéter • DAA : Deterministic 1. Annealing Algorithms diviser en deux le groupe le plus mauvais pour cela on peut utiliser un • SPC : Super-Paramagnetic autre algorithme tel que K- Clustering moyenne • SOTA : Self-Organizing Tree 2. mettre à jour la matrice des étape 1 étape 2 étape 3 distances entre les groupes Algorithm ▫ Jusqu’à (chaque donnée est dans • DIANA : Divisive ANAlysis un groupe à part) FIN. 28 27 Méthodes descendantes (3) • On a besoin d’un critère pour choisir le groupe à diviser ▫ le plus large : admettant les points les plus éloignés (plus distants) ▫ le plus dense : contenant le maximum de points • Pour diviser un groupe en deux, il y a un grand nombre de possibilités à tester : (2 n −1 ) −1 • On doit utiliser une heuristique pour réduire le nombre de possibilités Méthodes descendantes (4) • DIANA (DIvisive ANAlysis) ▫ on divise le groupe admettant le plus grand rayon ▫ Méthode de division d’un groupe G 1. trouver P0, le point admettant la plus grande dissimilarité moyenne (distance) avec le reste des points du groupe G 2. P0 va initier la formation d’un nouveau groupe Gnew = {P0 } 3. Pour chaque point i ∉ Gnew calculer Di = d (i, j ) / j ∉ Gnew − d (i, j ) / j ∈ Gnew 30 29 Méthodes descendantes (5) Méthodes descendantes (6) 4. Trouver un point h / Dh =max {Di } ET Dh >0 • Considérons un ensemble de villes italiennes et la matrice des distances entre elles Le point h est plus proche du nouveau groupe Gnew que du reste des points de G BA FI MI 0 662 BA 662 0 FI 877 295 MI 255 468 VO 412 268 RM 996 400 TO Moyenne 533,6 348,8 Gnew ← Gnew ∪ { h }; G ← G \ { h } 5. Répéter les étapes 3) et 4) jusqu’à ce que tous les points i de G admettent un Di < 0 on vient de terminer la division du groupe initial G VO RM TO 877 295 0 754 564 138 255 468 754 0 219 869 412 268 564 219 0 669 996 400 138 869 669 0 438 427,5 355,3 512 Gnew = {BA} en deux groupes 32 31 Méthodes descendantes (7) D(Gnew) D(G\Gnew) Di FI MI 662 877 357,75 437,75 -304,25 -439,25 FI Gnew G\Gnew Di 565 321 -244 FI Gnew G\Gnew Di 466 347,5 -118,5 VO 255 577,5 322,5 MI 815,5 332,3 -483,16 MI 731,66 216,5 -515,16 RM 412 430 18 RM 315,5 500,3 184,83 TO 844,66 269 -575,66 • Rayon(G1 )= distance( FI; TO)= 400 • Rayon(G2) = distance(BA,RM) = 412 TO 996 519 -477 TO 932,5 402,3 -530,16 Gnew = {BA; VO} Analyse de complexité • La matrice des distances occupe un espace de O(N2) Gnew = {BA; VO; RM} Tous les Di sont négatifs : arrêt de la division et on obtient les deux groupes • G1 = { FI; MI; TO } • G2= { BA; VO; RM } Prendre G2 et le diviser selon le même principe ... • La complexité temporelle est de O(N3) ▫ on a besoin de mettre à jour une matrice de O(N2) pendant N itérations ▫ pour certains algorithmes, la complexité temporelle peut-être de O(N2 log(N) ) 33 34 Concepts de base (1) • Essayer de diviser directement l’ensemble des données en des groupes homogènes • K-Moyenne est le premier algorithme qui a été proposé dans les méthodes par partitionnement • Plusieurs autres algorithmes ont été dérivés Méthodes par Partitionnement ▫ FCM, PCM, P3M, ... • Une difficulté intrinsèque: étant l’ensemble D, quel est le nombre de groupes existants dans D? 36 35 Concepts de base (2) Concepts de base (3) • La plupart des approches supposent un nombre prédéfini de classes ▫ L’algorithme accepte comme paramètre le nombre de groupes à générer • On peut utiliser un critère qui permet d’estimer le nombre optimal de groupe: ▫ entropie, gain informationnel, ... ▫ classer pour plusieurs valeurs du nombre de classes et choisir le partitionnement optimal selon le critère choisi ▫ très coûteuse sur le plan temps d’exécution 37 38 Algorithme (1) • Entrée : un nombre de classe (k) et un ensemble de données D • Sortie : un ensemble de groupe {g1, …, gk} DEBUT ▫ choisir (aléatoirement) dans D un ensemble de k données qui vont représenter les centres initiaux des groupes Répéter K-Moyenne 1. Calculer la distance de chaque donnée dans D par rapport aux k centres des groupes; et l’affecter au groupe le plus proche 2. Recalculer les nouveaux centres de groupes (moyenne de toutes les données du groupe) Jusqu’à (conditions d’arrêt) FIN. 39 40 Illustration (1) Algorithme (2) 5 • Plusieurs critères d’arrêt sont utilisés en pratique et modélisent le même concept: « stabilité des classes » ▫ les centres de classes deviennent stables d’une itération T à la suivante 4 k1 3 k2 2 k ∑ m (T + 1) − m (T ) j =1 j 1 j k <ε k3 0 ▫ le contenu des classes devient stable 0 1 2 3 4 5 42 41 Illustration (2) Illustration (3) 5 5 4 4 k1 k1 3 3 k2 2 2 k3 1 k2 1 k3 0 0 0 1 2 3 4 5 0 1 2 3 4 5 44 43 Illustration (4) Illustration (5) 5 5 4 4 k1 3 3 2 2 k1 k3 k2 k2 1 k3 1 0 0 0 1 2 3 4 5 0 1 2 3 4 5 45 Discussion (1) 46 Discussion (2) • L’algorithme K-moyenne est simple et efficace pour classer de grands volumes de données • Une difficulté avec les données non-numériques: comment calculer la moyenne pour générer les centres de classes ? ▫ Il a une complexité temporelle de O(nkt) n : le nombre de données, k: nombre de classe, t: nombre de cycles d’exécution généralement: k <<n, t << n ▫ chaînes de caractères, données ensemblistes, ... • Une possibilité serait de choisir une donnée parmi ceux dans un groupe comme étant son centre • Il est très sensible au bruit ▫ un bruit est un signal qui vient de s’ajouter aux données d’origine ▫ tous les points (données et bruit) participent également à la formation des classes ▫ choisir la donnée la plus proche du reste ! ▫ ainsi, on évite de calculer la moyenne 47 48 Concepts de base (1) • L’un des algorithmes les plus utilisés Fuzzy C-Means (FCM) ▫ Il a été proposé par J. C. Bezdek (1981): "Pattern Recognition with Fuzzy Objective Function Algorithms", Plenum Press, New York • L’idée de base consistait à redéfinir la notion d’appartenance d’une donnée à un groupe ▫ K-moyenne : une donnée appartient ou non (0/1) à un groupe ▫ FCM : une donnée appartient à une classe avec un certain degré ! 49 Concepts de base (2) • Ainsi, une donnée appartient, en même temps, à tous les groupes mais avec des degrés différents • uk,j∈ [0,1] est le degré d’appartenance de la donnée dj dans le groupe Gk • U = [uk,j] est la matrice des degrés d’appartenance • V = [v1, v2, …, vc] est l’ensemble des centres de classes 50 Concepts de base (3) groupe 2 groupe 1 • On définit une fonction objective à minimiser J m (U , V ) = ∑ ∑ (u k , j ) dist (d j , υ k ) c n m 2 k =1 j =1 groupe 3 sujet aux contraintes suivantes : d c ∑u k =1 ▫ dits aussi vecteurs prototypes k, j = 1; ∀d j ∈ D • m > 1 est un paramètre appelé fuzzificateur 51 Concepts de base (4) Algorithme (1) • En utilisant la méthode du gradient pour minimiser la fonction objective J, on obtient: ∂J ∂u k, j 52 =0 ∂J ∂vk = 0 • entrée: un nombre de classes c; et un ensemble de données D • sortie : une matrice de partitionnement U, et un ensemble de centre de classe V DEBUT ▫ initialiser (aléatoirement) la matrice U Répéter ∑ (u ) n u −1 k, j dist (d j , v k )2 =∑ 2 ( ) dist d , v l =1 j l c 1 m −1 vk = m k, j j =1 ×dj ∑ (u ) n j =1 m k, j 1. calculer les centres de classes V 2. mettre à jour la matrice d’appartenance U Jusqu’à (∆U < ε) FIN. 53 Algorithme (2) 54 Algorithme (3) ▫ entropie du partitionnement (ep) • On s’arrête lorsque les changements dans les degrés d’appartenance deviennent négligeables : ∆ U = U (T + 1) − U (T ) < ε ep = − • Comme tout méthode de partitionnements, le nombre de groupes doit être spécifié • On utilise généralement deux critères pour approximer le nombre de réel de groupes 0,41 ep 0,39 0,35 G1 G2 G3 20 0,33 15 A3 0,31 10 0,29 5 0,27 0 30 ( ) 1 uk2, j ∑∑ n j =1 k =1 25 20 30 0,25 25 15 2 3 4 5 2 10 15 10 5 5 0 0 A1 55 56 Concepts de base (1) Méthodes basées sur la densité #groupes 6 20 A cp = c ] 0,37 ▫ coefficient de partitionnement (cp) n [ 1 n c ∑∑ uk , j log(uk , j ) n j =1 k =1 • On modélise D comme étant un ensemble de régions denses (les groupes) séparées par des régions non-denses (les frontières entre les groupes) • Plusieurs algorithmes ▫ ▫ ▫ ▫ DBSCAN: Ester, et al. (KDD’96) OPTICS: Ankerst, et al (SIGMOD’99) DENCLUE: Hinneburg & D. Keim (KDD’98) CLIQUE: Agrawal, et al. (SIGMOD’98) 57 58 Concepts de base (3) Concepts de base (2) • Toutes ces méthodes possèdent deux paramètres ▫ ε : le rayon du voisinage • Joignable Directement par Densité (JDD) • un point p est dit JDD à partir d’un autre point q par rapport à ε et Minpts ssi : ▫ MinPts: nombre minimal de voisins se trouvant à un rayon ε p q ▫ p appartient au voisinage de q à un rayon ε • On définit l’ensemble des voisins d’un point P se trouvant dans un rayon ε par p ∈ N ε (q ) Nε (p) = {q ∈ D tel que dist(p, q) <= ε } •MinPts = 5 •ε = 1 cm ▫ q est un point dense • où dist( ) est une fonction de distance qui peut dépendre de la nature des données à classer N ε (q ) ≥ MinPts 59 Concepts de base (4) 60 Concepts de base (5) • Joignable par Densité (JD) • Connecté par densité (CD) • un point p est dit JD à partir d’un • un point p est dit CD à partir point q par rapport à ε et Minpts p ssi il existe une suite de points p1 = q, pn = p 2. pi+1 est joignable directement par densité à partir de pi p q Minpts ssi il existe un point o p1 (chaîne) p1, …, pn tels que: 1. d’un point q par rapport à ε et q tels que p et q sont joignables par densité à partir de o par rapport à ε et Minpts . o 61 Concepts de base (6) 62 Concepts de base (7) • La densité d’un point est la taille de son voisinage se trouvant à un rayon ε • Un point est dit un point noyau (central) s’il a une densité supérieure à MinPts • Un point frontière est un point qui admet une densité inférieur à MinPts, mais se trouve dans le voisinage d’un point noyau • Un point bruit est n’importe quel point qui n’est ni point noyau, ni un point frontière 63 Algorithme DBSCAN (1) • Density Based Spatial Clustering of Applications with Noise • entrée : un ensemble de données D • sortie: ensemble des groupes dans D et l’ensemble de points bruits • Algorithme DBSCAN 64 Algorithme DBSCAN (2) DEBUT Pour chaque point non visité p faire 1. marquer p comme étant visité 2. N ← Nε (p) 3. Si (|N| < MinPts) alors marquer p comme étant un point bruit 4. Sinon C ← C + 1 {on commence la formation d’un nouveau groupe} b. ETENDRE_GROUPE (P, N, C, ε, MinPts) a. VAR C : entier {nombre de groupe } Fin Si Fin Pour FIN 65 Algorithme DBSCAN (3) Algorithme ENTENDRE_GROUPE (P, N, C, ε, MinPts) BEGIN 1. ajouter le point p au nouveau groupe Gc 2. Pour chaque point p‘ ∈ N faire 66 Algorithme DBSCAN (4) Original data sets Si p' n’a pas été visité alors ▫ marquer p’ comme étant visité ▫ N’← Nε (p’) ▫ Si (|N’| ≥ MinPts) alors N ← N ∪ N‘ Fin Si Fin Si Si (p’ n’appartient à aucun groupe) alors Gc ← Gc ∪{p’} Fin Si Fin Pour END Clusters discovered by DBSCAN