You are on page 1of 14

PREUVE COMMUNE DE TIPE 2009 - Partie D

TITRE :

Etude dun algorithme de Clustering


Temps de prparation : ..2 h 15 minutes Temps de prsentation devant le jury : .10 minutes Entretien avec le jury : ..10 minutes GUIDE POUR LE CANDIDAT : Le dossier ci-joint comporte au total : 14 pages Document principal (12 pages, dont celle-ci) Annexe : glossaire de 2 pages expliquant les termes nots * dans le dossier Travail suggr au candidat : Illustrer le fonctionnement de l'algorithme sur un exemple Avoir une rflexion sur ltude de la complexit de cet algorithme Montrer les similarits et les diffrences entre le clustering gographique et le clustering de mots. Vous pourrez regarder comment vont tre regroups des documents contenant les mots cls de la Section IV en faisant varier les paramtres minPts et . Vrifier que les mesures de similarit respectent bien les intuitions de la Section IV, et donner des exemples sur la similarit entre documents (Jaccard et Halkidi). Vous pourrez discuter de l'amlioration de la similarit entre documents apporte par la mesure de Wu et Palmer par rapport celle de Jaccard, en prenant les couples de documents (2, 3), (2, 5) et (3, 5).

Attention : si le candidat prfre effectuer un autre travail sur le dossier, il lui est expressment recommand den informer le jury avant de commencer lexpos. CONSEILS GENERAUX POUR LA PREPARATION DE L'EPREUVE : * Lisez le dossier en entier dans un temps raisonnable. * Rservez du temps pour prparer l'expos devant le jury. Vous pouvez crire sur le prsent dossier, le surligner, le dcouper mais tout sera remettre au jury en fin doral. En fin de prparation, rassemblez et ordonnez soigneusement TOUS les documents (transparents, etc.) dont vous comptez vous servir pendant loral, ainsi que le dossier, les transparents et les brouillons utiliss pendant la prparation. En entrant dans la salle d'oral, vous devez tre prts dbuter votre expos. A la fin de l'oral, vous devez remettre au jury le prsent dossier, les transparents et les brouillons utiliss pour cette partie de l'oral, ainsi que TOUS les transparents et autres documents prsents pendant votre prestation.

Etude d'un algorithme de clustering


Introduction

Illustration 1: La carte de John Snow de 1854, 1 yard = 0.9144 m Ce dossier prsente un algorithme classique trs utilis dans le domaine de lAnalyse de 5 Donnes Spatiales (ADS) et son application dans un contexte lgrement diffrent : la Recherche d'Information (RI). LADS est l'analyse de donnes spatiales quantitatives (ou gographiques) pour essayer d'en tirer de l'information pertinente. L'origine de cette discipline remonte au XIXe sicle avec les travaux de John Snow, sur des pidmies de cholra Londres, comme indiqu dans l'illustration 1.

Page 1 sur 13

10

Les points sur la carte reprsentent des dcs ds au cholra, et les croix reprsentent des pompes eau. L'objectif de son tude tait de valider son hypothse selon laquelle la dissmination du cholra se faisait par l'intermdiaire de la distribution d'eau, ce qui a t dmontr en laboratoire en 1883 par Robert Koch. Pour ce faire, il a donc dress une carte avec les dcs ds au cholra localiss spatialement. Lobservation de la densit de dcs la

15

conduit la construction dune sorte de cluster (groupe), qui tait corrl avec la prsence de pompes eau contamines. Cette exprience peut tre considre comme l'une des premires tentatives dADS quantitatives. Nous allons donc tudier du point de vue informatique un algorithme de regroupement par densit en prsence de bruit, appel DBSCAN (Density-Based Spatial Clustering of

20

Applications with Noise) invent par Ester, Kriegel, Sander et Xui en 1996.

I- Survol de l'algorithme
Le pseudo-code de cet algorithme est donn en figure 1. Les paramtres de l'algorithme sont un ensemble de points D, de cardinal card(D) = n, une distance minimale et minPts, un nombre minimal de voisins pour qu'un point ne soit pas considr comme du bruit. Le rsultat 25 est un ensemble de clusters (groupes) numrots contenant des points, plus un ensemble de points appels BRUIT qui ne font partie d'aucun cluster. La fonction trouverVoisins(P, ) retourne l'ensemble des points voisins de P (et distincts de P), se trouvant une distance (ici euclidienne) d'au plus . La fonction card(N) retourne le nombre de points de l'ensemble N. Dans le code on utilise des {} pour reprsenter un ensemble et [ ] pour reprsenter une 30 structure de type produit* (les mots suivis dun astrisque sont dfinis en annexe). On peut noter quune variation dans le choix du point initial ne changera que la numrotation des clusters et non pas les lments les composant. La fonction calculerCluster(M, Cluster) permet le calcul rcursif dun cluster une fois quon a trouv un premier point permettant de commencer le construire.

Page 2 sur 13

35
Entres : D : {point} minPts : entier : rel

40

Sortie : C : { [points : {point}, id : entier] } BRUIT : {point} Variables locales : i : entier

45

P : point N : {point} Cloc : [points : {point}, id : entier] Dbut : i = 0, C = {}

50

pour chaque point P non VISITE de l'ensemble D faire N = trouverVoisins (P, ) si (card(N) < minPts) alors

marquer P comme BRUIT sinon

55

i = i + 1 crer un nouveau Cloc avec Cloc.id = i et ajouter P Cloc.points marquer P comme VISITE pour tout Q de N faire

60
Fin.

calculerCluster (Q, Cid.points) ajouter Cloc C

Fonction calculerCluster(M : point, Cluster : {point})

65

Debut : N = trouverVoisins (M, ) si (card(N) < minPts) alors

marquer M comme BRUIT sinon

70

marquer M comme VISITE et ajouter M Cluster pour tout Q non VISITE de N faire calculerCluster (Q, Cluster) Fin.

Figure 1- Algorithme DB-SCAN Page 3 sur 13

II- Exemple
75 Regardons sur un exemple rapide, figure 2, le fonctionnement de cet algorithme en prenant
minPts=2, ce qui signifie qu'un point doit avoir au minimum 2 voisins dont le centre est une

distance infrieure pour ne pas tre considr comme tant du bruit.). On voit apparatre deux clusters, C1 et C2, contenant respectivement 3 et 4 points. Les points hachurs horizontalement sont des points de type BRUIT, qui ne font partie d'aucun cluster. 80 Notons que l'algorithme est dterministe, puisque les rsultats ne dpendent pas du choix du point initial. Ce n'est pas le cas de tous les algorithmes de regroupement par densit.

Figure 2: Exemple de fonctionnement de DB-SCAN

III- Etude de complexit


Une rapide analyse de complexit de l'algorithme de la figure 1 nous permet de voir que si 85 toutes les oprations appeles ici se font en temps O(1), alors nous allons effectuer un nombre born d'oprations O(1) pour chaque point de l'ensemble D, et donc que nous aurons une complexit finale qui sera linaire selon le paramtre n. Poussons cette analyse davantage, car il n'est pas vident que la fonction trouverVoisins soit O(1). Prenons un algorithme et des structures nafs permettant de raliser les fonctions 90
trouverVoisins(point, rel) et card({point}). L'algorithme de cette fonction, donn en

Figure 3, permet d'obtenir l'ensemble des voisins d'un point donn en paramtre, et le cardinal de cet ensemble en faisant appel une fonction distance(point, point) qui retourne la distance entre deux points en temps O(1).

Page 4 sur 13

On constate que cela nous cote un temps O(n) de calculer les plus proches voisins, ainsi que 95 la taille de l'ensemble. Le temps d'excution de l'algorithme n'est donc pas linaire en n comme annonc prcdemment mais quadratique ! Mais quelle est en ralit la manire dont un utilisateur va se servir de l'algorithme? Quelles tches va-t-il devoir effectuer de nombreuses fois, et quelles tches pourrait-il n'excuter qu'une seule fois ? Lors de l'utilisation d'un algorithme tel que DBSCAN qui possde des 100 paramtres d'ajustement (minPts et ), il est courant de l'excuter plusieurs fois pour trouver des paramtres pertinents, ou bien pour raliser un clustering plusieurs granularits, comme montr dans la figure 4. En effectuant une fois pour toutes le calcul des plus proches voisins de chaque point, nous allons pouvoir amliorer la complexit de l'algorithme lors d'excutions successives : si on sauvegarde pour chaque point dans un tableau tabVoisins, n lignes et 105 n colonnes, la liste ordonne de ses plus proches voisins avec la distance les sparant de ce point, alors il est immdiat de voir qu'on pourra dterminer en un temps O(1) si ses minPts plus proches voisins sont une distance de ou pas : il suffit de regarder la valeur de distance de l'lment minPts de ce tableau.
Entres :

110
Sortie :

P : point : rel

V : {point} cardV : entier

115

Variables globales : D : {point} est l'ensemble des points traits dans l'algorithme Variables locales : M : point

120

Dbut : V = {} cardV = 0 pour chaque point M de D faire si (distance(P, M) < ) alors

125
Fin.

ajouter M V cardV = cardV + 1

Figure 3- Fonction trouverVoisins

Page 5 sur 13

Figure 4: Excutions successives de DBSCAN avec plusieurs valeurs de et minPts = 2 Le cot de construction du tableau des voisins est O(n2 lnn) si on utilise un algorithme naf comme celui de la Figure 5, et le temps d'excution de DBSCAN est donc O(n). On suppose 130 ici qu'on se donne un indiage arbitraire des points : P1, P2, ..., Pn
Entres : Sortie : tabVoisins : tableau de n, n : [point, rel] Variables globales :

135

D : {point} est l'ensemble des points traits dans l'algorithme Variables locales : i, j : entier Dbut :

140

pour i allant de 1 n faire pour j allant de 1 n faire tabVoisins[i, j] = (Pj , distance(Pi,Pj)) pour i allant de 1 n faire trier par ordre croissant la ie ligne de tabVoisins

145
Fin.

en utilisant le 2e champ (c'est--dire la distance)

Figure 5- Algorithme de construction de tabVoisins Ainsi, si on prend tabVoisins[3,5] on connatra l'indice j et la distance du cinquime point le plus proche du point P3, ce qui nous cote O(1).

IV- Clustering de mots


150 La classification automatique de documents Web est un autre exemple o le clustering de donnes est appliqu, et o on peut rutiliser ces algorithmes pratiquement tels quels.

Page 6 sur 13

L'objectif de cette classification est de regrouper des documents traitant des mmes sujets. Ce genre de classification existe depuis longtemps dans les bibliothques : un ouvrage sera identifi comme un livre d'informatique, peut-tre avec une spcialit de Recherche 155 d'Information, selon la granularit de la classification. Dans les bibliothques, cette classification est manuelle : il existe une liste de classes et chaque livre doit tre rang dans la bonne catgorie. Lorsqu'on est sur Internet, et face au volume de donnes traiter, il est impossible d'esprer un jour que tous les documents (sites Web) soient classs la main. Il se prsente deux 160 problmes : (a) Obtenir pour chaque document une liste de mots-cls le reprsentant (b) Dfinir une distance entre des mots-cls, pour pouvoir appliquer un algorithme de clustering. Nous ne considrerons pas ici le problme soulev par (a), qui peut tre rsolu par des 165 techniques de data mining* textuel, permettant d'extraire un petit ensemble de mots pertinents caractrisant le document. Nous allons supposer connu cet ensemble, et nous concentrer sur le problme (b). Dans ce domaine, il est frquent de parler de la similarit (un rel entre 0 et 1) entre documents plutt que de leur distance (un rel entre 0 et +). Il est courant de passer de la distance d(a, b) la similarit S(a, b) par la fonction suivante : 1 2 arctan d ( a, b) S ( a, b ) =

170

(1)

Voici quelques proprits intuitives qui devront tre respectes par une mesure de similarit. Pour deux ensembles A et B: La similarit entre A et B est fonction de ce quils ont en commun. Plus ils ont dlments en commun, plus leur similarit sera leve. (P1) 175 La similarit entre A et B est fonction de leurs diffrences. Plus ils ont de diffrences, plus leur similarit sera faible. (P2) La valeur de similarit maximale est obtenue lorsque A et B sont identiques, quel que soit leur nombre d'lments communs. (P3) La mesure de similarit la plus courante utilise en recherche d'information est appele 180 coefficient de Jaccard, qui se calcule selon la formule : S ( A, B) = card( A B ) card( A B ) (2)

Page 7 sur 13

Il est facile de vrifier que cette mesure de similarit respecte les proprits P1, P2 et P3. Une fois que l'on dispose de cette mesure de similarit, on peut excuter l'algorithme de clustering pour obtenir des clusters de documents similaires. On voit galement apparatre la 185 problmatique du paramtrage de l'algorithme de clustering ! En effet, quelle signification faut-il donner une similarit de 0,5 entre deux documents ? Une similarit de 0,8 ? La validation des clusters se faisant par chantillonnage et vrification manuelle, on voit qu'il est capital de pouvoir lancer de nombreuses fois l'algorithme de clustering, avec de petites variations dans les paramtres, sans pour autant recalculer toutes les similarits entre les 190 documents. Nous sommes bien dans le cas de figure dcrit dans la partie III. Regardons comment peuvent tre regroups des documents contenant les mots-cls suivants : ID du document 1 2 3 4 5 6 7 8 9 10 11 Mots-Cls Achat Achat, voiture Vente, voiture Vente Achat, maison Achat, voiture, occasion Achat, voiture, neuve Achat, voiture, familiale Vente, maison Vendre, automobile Schmilblick Tableau 1- Exemples de documents identifis par leurs mots-cls

On voit se dessiner deux problmes, l'un d l'utilisation de DBSCAN, l'autre d la mesure de similarit utilise. 195 (a) Les clusters n'ont parfois pas de vritable signification, et peuvent devenir trop gros, ce qui est d au fait que la similarit est la mme entre 2 et 3 qu'entre 2 et 5, sans pour autant qu'il existe un lien smantique fort entre 3 et 5. Il est pourtant possible qu'ils se retrouvent dans le mme cluster. (b) La similarit entre 3 et 10 est nulle, ce qui est d notre utilisation de mots-cls, sans 200 essayer d'en comprendre leur sens. De nombreuses recherches ont t faites pour amliorer les algorithmes de clustering, pour pallier au problme (a), tout en essayant de conserver une complexit linaire dans le nombre de points, par exemple les travaux de Zamir et Etzioni (1998) qui utilisent des arbres des

Page 8 sur 13

suffixes*. Des travaux issus du domaine des ontologies ont permis d'amliorer la qualit des 205 mesures de similarit, et c'est ce que nous allons regarder dans la dernire partie de ce dossier.

V- Distance de mots dans une ontologie


Nous dfinissons une ontologie T comme un graphe orient (par exemple un arbre ou une fort), dont les nuds reprsentent des mots, et dont les arcs indiquent une relation smantique entre le pre et le fils, par exemple tre un synonyme ou bien tre une partie de. 210 La Figure 7 donne un exemple d'ontologie trs simple avec les termes voqus dans le tableau 1. Nous dfinissons ensuite une mesure de similarit, appele similarit de Wu et Palmer entre des nuds d'une fort (qui se gnralise un graphe orient) par la formule suivante, et illustre dans la figure 6. 215 Si a et b sont connects par un chemin et c est leur anctre commun le plus proche alors SW & P (a, b) =
2 Path(c) Path( a ) + Path(b)

(3)

Sinon SW & P (a, b) = 0

Path(c) reprsente la distance depuis un nud origine R vers l'anctre commun de a et b, et Path(a) et Path(b) sont les plus courts chemins passant par cet anctre. Pour des raisons de calcul, on considre que Path(R) = 1. Ainsi sur lexemple de la Figure 6, Path(c) = 2 220 Path(b) = 3 et Path(a) = 4.

Figure 6: Exemple de distance entre nuds d'un graphe, par rapport une racine R

Page 9 sur 13

Figure 7- Exemple d'ontologie 225 Il nous reste dfinir une distance entre des ensembles de mots A et B. On peut choisir une gnralisation de la mesure de Wu et Palmer, propose par Halkidi et al. en 2003, donne par la formule suivante :
1 ( A, B ) = 1 1 max SW & P (a, b ) + max SW & P (a, b ) 2 card( A) aA bB card( A) bB aA

230

On peut vrifier que cette mesure respecte bien les proprits nonces au dbut de la section IV. Un exemple d'application de cette mesure est donn dans la figure 8.

Page 10 sur 13

a2 a1

b1

a3

b2

A = {a1, a1, a1} et B = {b1, b2} S(A, B) = 1/2 (1/3 (3/4 + 6/9 + 3/4) + 1/2 (3/4 + 3/4)) S(A, B) = 0,74 Figure 8: Exemple de calcul de similarit entre ensembles de mots

Disposant dsormais d'une mesure de similarit entre ensembles de mots, il est tout fait possible d'excuter l'algorithme DBSCAN sur les documents identifis dans la section IV. Il 235 est important de souligner que la qualit des rsultats dpend bien sr de la prcision de l'ontologie utilise.

Conclusion
L'utilisation d'algorithmes de clustering, dont l'origine vient de la fouille de donnes spatiale 240 est utilise aujourd'hui dans des domaines trs varis comme nous l'avons montr sur l'exemple du clustering bas sur une mesure de similarit entre documents. D'une manire gnrale, il est possible de regrouper n'importe quel ensemble d'informations reprsent sous la forme de mots-cls, Ainsi dans le domaine du Web la publicit cible se base sur ce principe. La difficult que nous n'avons pas aborde ici, comme dans le cas d'ailleurs des 245 simples documents Web, est de russir rduire les documents, ou les utilisateurs, une liste de mots-cls !

Page 11 sur 13

ANNEXES Glossaire
250 Type produit Un type produit est compos d'un ensemble de champs, chacun pouvant tre d'un type quelconque, possdant un nom de champ. Par exemple, on peut dfinir un type produit Voiture comme ayant les champs marque de type chane de caractres et puissance_fiscale de type entier. Dans ce cas, si on dfinit une variable v comme tant de type Voiture alors on 255 peut accder aux champs marque et puissance_fiscale en utilisant la notation pointe : v.marque et v.puissance_fiscale. On utilise ensuite v.marque exactement comme une variable de type chane et v.puissance_fiscale exactement comme une variable de type entier : on pourra crire v.marque = "Renault" et v.puissance_fiscale = 7.

260

Data mining Le data mining (en franais fouille de donnes ou encore extraction de connaissances partir de donnes) est une branche de l'informatique dont le but est l'extraction d'un savoir ou d'une connaissance partir de grandes quantits de donnes en utilisant des mthodes automatiques ou semi-automatiques, que nous ne dtaillons pas ici.

265

Le data mining est un processus d'analyse dont l'approche est diffrente de celle utilise en statistique. Cette dernire prsuppose en gnral que l'on se fixe une hypothse que les donnes permettent ou non de confirmer. Au contraire, le data mining adopte une dmarche sans a priori et essaie ainsi de faire merger, partir des donnes brutes, des infrences que l'exprimentateur peut ne pas souponner, et dont il aura valider la pertinence.

270

Trs utilis dans le monde professionnel, l'exemple le plus connu comme application est l'tude des tickets de caisses de supermarchs, afin de dcouvrir quels produits sont achets le plus souvent ensemble. Par exemple : si on achte une sauce bolognaise on achte souvent des ptes. Plus surprenant, le data mining a permis de dcouvrir que lorsqu'on achetait de la bire on achetait aussi des couches pour bbs !

275

Fort de cette information, le grant du supermarch peut choisir de mettre les produits achets ensemble ct les uns des autres, ou au contraire loin les uns des autres pour obliger le client traverser tout le supermarch, et donc voir et tre tent par l'achat d'autres produits. Un autre exemple souvent cit est le suivant : si on baisse le prix de la boisson XXX de 5%, on va par exemple en augmenter les ventes de 15%, ce que l'on savait sans data mining. Mais Page 12 sur 13

280

le data mining rvle l'lment inattendu (bien qu'vident a posteriori), savoir que les ventes des cacahoutes vont augmenter dans une proportion voisine (sans doute suite l'association d'ides : Puisque j'achte du XXX, il me faut aussi des cacahoutes ; le data mining ne fait pas d'hypothse sur le sujet). Si la marge sur la boisson XXX est relativement faible, et celle sur les cacahutes importante, la conclusion s'impose d'elle-mme : baisser le prix de la

285

boisson XXX est un moyen de vendre davantage de cacahoutes.

Arbre des suffixes La Figure 9 reprsente l'exemple d'arbre des suffixes utilis par Zamir et Etzioni. L'objectif est de voir les similitudes entre trois phrases : "chat mange fromage", "souris mange fromage 290 aussi" et "chat mange souris aussi". Chaque feuille de l'arbre est tiquete par deux nombres, le premier correspondant au numro de la phrase et le deuxime correspondant la position dans la phrase du dbut de la sous-phrase reprsente par le chemin dans l'arbre menant cette feuille. Par exemple en passant par le nud d on peut avoir soit "souris mange fromage aussi" c'est--dire en premire position de la phrase 2, soit "souris aussi" c'est--dire une sous295 phrase commenant la 3e position de la phrase 3. L'intrt de cet arbre des suffixes est qu'il se construit en temps linaire, et que le rsultat va permettre de regrouper ensemble des phrases (ou documents) ayant des choses en commun.

chat mange

fromage mange

souris

aussi

a
fromage

b
souris aussi fromage

1,3

d
mange fromage aussi 2,4 aussi

e
3,4

aussi

f
1,1 3,1 aussi 1,2 3,2 2,3 2,1 3,3

3,2

Figure 9 - Arbre des suffixes 300

Page 13 sur 13

You might also like