1.6 Les diff´erentes m´ethodes de clustering
1.6.6 Le clustering conceptuel
Le clustering conceptuel a ´et´e introduit au d´ebut des ann´ees 1980 par [124]. Cette approche du clustering est alors pr´esent´ee comme une mani`ere de d´ecouvrir des sch´emas (clusters) “compr´ehensibles” `a partir des donn´ees. Plutˆot que de d´efinir une mesure de similarit´e puis d’organiser les objets de fa¸con `a minimiser les inerties intra-clusters et maxi-miser l’inertie inter-clusters, Michalski propose de g´en´erer une structure (hi´erarchique) de concepts. Dans ce type de structure, chaque concept se d´efinit `a la fois en extension (en-semble des objets plac´es dans ce concept) et en intension (r`egles descriptives sur les objets). La d´efinition en intension permet une caract´erisation des clusters (ou concepts) et fournit alors `a l’utilisateur une explication compr´ehensible de ces concepts.
Plusieurs syst`emes de clustering conceptuel ont ´et´e propos´es, afin de traiter des donn´ees plus ou moins complexes et de construire diff´erents types de structures conceptuelles. On note alors les premiers algorithmes tels que CLUSTER/2 [125] modifi´e dans CLUS-TER/S [177] pour traiter des donn´ees `a domaines de valeurs davantage structur´es, com-parativement aux descriptions sous forme attribut/valeur. De la mˆeme fa¸con, l’algorithme incr´emental COBWEB [60] a ´et´e adapt´e dans CLASSIT [66] pour traiter des donn´ees d´ecrites par des attributs num´eriques. Contrairement `a ces derni`eres m´ethodes, qui g´en`erent chacune un arbre hi´erarchique, d’autres approches consistent `a organiser les concepts dans des graphes conceptuels, s’apparentant davantage `a des treillis de Galois. Cet autre type de structure est notamment ´etudi´e dans les travaux de [184, 174].
Nous avons choisi de pr´esenter, dans cette section, l’algorithme COBWEB, afin d’illus-trer le fonctionnement des m´ethodes de clustering conceptuel. Cet algorithme est tr`es utilis´e et se pr´esente souvent comme une r´ef´erence dans ce domaine.
COBWEB est un syst`eme incr´emental de clustering conceptuel hi´erarchique. Le pro-cessus de formation de concepts a pour objectif de construire, `a partir d’un ensemble de
donn´ees et de leur description, une hi´erarchie de concepts telles que nous la pr´esentons en figure 1.19. P (C1) = 1 P (C2) = 1/3 P (chev. = bruns|C2) = 1 P (yeux = verts|C2) = 1/2 P (yeux = bleus|C2) = 1/2 P (C4) = 1/2 P (chev. = bruns|C4) = 1 P (yeux = verts|C4) = 1 P (C5) = 1/2 P (chev. = bruns|C5) = 1 P (yeux = bleus|C5) = 1 P (C6) = 1/2 P (chev. = blonds|C6) = 1 P (yeux = bleus|C6) = 1 P (C7) = 1/4 P (chev. = blonds|C7) = 1 P (yeux = verts|C7) = 1 P (C8) = 1/4 P (chev. = blonds|C8) = 1 P (yeux = noirs|C8) = 1 P (C3) = 1/3 P (yeux = bleus|C3) = 1/2 P (yeux = noirs|C3) = 1/4 P (chev. = blonds|C3) = 1 P (yeux = verts|C3) = 1/4s
Fig. 1.19 – Exemple d’une hi´erarchie de concepts g´en´er´ee par COBWEB.
A chaque concept de la hi´erarchie est associ´ee une d´efinition g´en´erique des objets constituant la classe. Par exemple, dans la figure 1.19, la classe C2 contient 1/3 des indi-vidus de l’ensemble initial et dans C2 tous les individus ont les cheveux bruns et la moiti´e ont les yeux verts.
L’algorithme COBWEB s’inscrit dans la probl´ematique g´en´erale du clustering puisqu’il s’agit d’optimiser un crit`ere global bas´e sur les deux notions de :
– similarit´e intra-classe, – dissimilarit´e inter-classes.
Le crit`ere CU (Category Utility) [69] est alors utilis´e dans COBWEB pour ´evaluer la qualit´e globale d’un sch´ema de clustering :
CU ({C1, . . . , Ct}) = 1 t t X k=1 p(Ck)[X i X j p(Ai= Vi,j|Ck)2−X i X j p(Ai= Vi,j)2] (1.1) Dans cette derni`ere d´efinition,{A1, . . . , Ap} d´esigne l’ensemble des attributs d´ecrivant les objets et {Vi,1, . . . , Vi,ni} le domaine de valeurs de l’attribut Ai. On retrouve dans ce crit`ere les probabilit´es conditionnelles p(Ai = Vi,j|Ck) et p(Ck|Ai = Vi,j)20, formalisant respectivement la similarit´e intra-classe et la dissimilarit´e inter-classes. Si un couple attri-but/valeur (Ai = Vi,j) est ind´ependant d’une classe Ck, alors p(Ai = Vi,j|Ck) = p(Ai = Vi,j) et p(Ai = Vi,j|Ck)2− p(Ai = Vi,j)2= 0. En supposant que cela soit vrai pour tous les couples attribut/valeur, le sch´ema de concepts propos´e est ind´ependant des descriptions et le crit`ere CU atteint son minimum 0. En revanche, ce crit`ere atteint son maximum pour le meilleur sch´ema conceptuel.
La strat´egie de construction de la structure hi´erarchique consiste `a incorporer les objets de fa¸con incr´ementale dans la structure. Chaque nouvel objet est introduit par la racine puis parcourt l’arbre en appliquant successivement l’un des op´erateurs suivants :
Incorporer l’objet dans le cluster,
COBWEB : Algorithme incr´emental de classification conceptuelle hi´erarchique. Entr´ees : Le nœud courant N de la hi´erarchie de concepts et xi une nouvelle instance `a incorporer,
Sortie : Une hi´erarchie de concepts classifiant l’instance xi. Proc´edure COBWEB(N ,xi)
Si N est un nœud terminal (feuille) alors : cr´eer-nouveaux-nœuds-terminaux(N ,xi) incorporer(N ,xi)
Sinon incorporer(N ,xi)
Pour chaque nœud fils C de N :
Calculer le score d’int´egration de xi dans C Soit P le nœud avec le plus haut score (SI), Soit R le nœud avec le deuxi`eme plus haut score,
Soit SC le score correspondant `a la cr´eation d’un nouveau nœud Q ={xi}, Soit SF le score correspondant `a la fusion des nœuds P et R,
Soit SD le score correspondant `a la division du nœud P (remplac´e par ses fils),
Si SI est le meilleur score alors : COBWEB(P ,xi),
Sinon si SC est le meilleur score alors : initialiser Q relativement `a xi, Sinon si SF est le meilleur score alors : O = fusionner(P ,R,N ) et COBWEB(O, xi),
Sinon si SD est le meilleur score alors : diviser(P ,N ) et COBWEB(N, xi).
Fig. 1.20 – L’algorithme COBWEB.
Cr´eer un nouveau cluster,
Fusionner deux clusters en un seul, Diviser un cluster en plusieurs clusters.
Ces quatre op´erations sont d´etaill´ees en figure 1.21 et viennent en compl´ement de l’algorithme g´en´eral COBWEB report´e en figure 1.20, selon le formalisme propos´e par [67].
COBWEB pr´esente plusieurs limites parmi lesquelles : la difficult´e `a traiter les attributs num´eriques, l’influence de l’ordre dans lequel les objets sont int´egr´es `a la hi´erarchie ou encore le stockage coˆuteux de l’ensemble des instances dans cette hi´erarchie.
Les algorithmes de clustering conceptuel g´en`erent, pour la plupart, une structure hi´erarchique de concepts (graphe ou arbre). De mˆeme que les hi´erarchies peuvent ˆetre g´en´eralis´ees en pseudo-hi´erarchies ou pyramides (cf. 1.6.1), un arbre, obtenu par exemple avec COBWEB, peut ˆetre g´en´eralis´e en une pyramide conceptuelle. Dans ce type de struc-ture, `a chaque nœud est associ´ee une d´efinition en intension, et `a un mˆeme niveau dans la pyramide, chaque concept peut ˆetre partiellement recouvert par au plus deux autres
fonction incorporer(N ,xi)
Mettre `a jour les probabilit´es de N , Pour chaque attribut A de xi :
Pour chaque valeur V de A :
Mettre `a jour la probabilit´e p(V|N). fonction cr´eer-nouveaux-nœuds-terminaux(N ,xi) Cr´eer un nouveau nœud fils M au nœud N ,
Initialiser les probabilit´es de M `a partir des probabilit´es de N , Cr´eer un nouveau fils O au nœud N ,
Initialiser les probabilit´es de O `a relativement `a xi. fonction fusionner(P, R, N )
Cr´eer un nouveau nœud fils O au nœud N ,
Mettre `a jour les probabilit´es de O par moyenne des probabilit´es de P et R, Supprimer les nœuds fils P et R de N ,
Ajouter P et R comme nœuds fils du nœud O, Retourner O.
fonction Diviser(P, N ) Supprimer le nœud fils P de N ,
Ajouter chaque nœud fils de P comme nouveau nœud fils de N .
concepts. Ces travaux plutˆot r´ecents sont pr´esent´es dans [20] et ont donn´e lieu au syst`eme SODAS [47].