Professional Documents
Culture Documents
D ÉPARTEMENT D ’ INFORMATIQUE
Rapport Final
Fouille visuelle de données à l’aide de
métaphores 3D en réalité virtuelle
2
Résumé
Le sujet Fouille visuelle de données à l’aide de métaphores 3D en réalité virtuelle fait référence
à l’imposant domaine du data mining, c’est à dire à la découverte de connaissances dans les don-
nées (lire entre autres [Bla05]). Ce projet pose la question de l’intervention de l’utilisateur dans
un processus de sélection de connaissances "intéressantes", et de la place des évaluations sub-
jectives des connaissances, en complément des évaluations objectives (calculatoires) classiques.
Un état de l’art concernant l’utilisation de la visualisation de règles d’association en fouille de
données a été réalisé, ainsi qu’un outil logiciel. Cet outil se veut capable d’aider un utilisateur
à sélectionner graphiquement et en 3D, les connaissances (en l’occurrence des règles d’associa-
tion) qui lui semblent les plus pertinentes.
Les règles d’association décrivent l’incidence de la présence d’une ou plusieurs donnée(s) sur la
présence d’une ou plusieurs autre(s), dans un échantillon (c’est à dire dans un ensemble d’en-
registrements). Ces mesures peuvent être évaluées de manière objective, à l’aide d’indicateurs
appelés "mesures d’intérêt", ou de manière subjective avec l’aide d’un utilisateur averti (lire
[HLSL01]).
L’état de l’art montre très nettement que le domaine est couvert par des outils professionnels ou
non, mais qu’il reste une place à pourvoir pour un challenger, qui apporterait une visualisation
intuitive, et plus détaillée et granuleuse qu’actuellement. Le but étant d’offrir une aide bienvenue
à un analyste effectuant un travail de sélection de règles d’association "intéressantes", dans le
cadre d’une fouille de données.
L’analyse de l’outil ARVis montre une bonne représentation des règles, dans une bonne orga-
nisation, mais une granularité inférieure au maximum envisageable. L’intérêt d’un nouvel outil
s’inspirant d’ARVis et comblant ses lacunes est donc certain.
Nous proposons trois métaphores 3D, c’est à dire trois manières de représenter des règles d’as-
sociation dans un espace 3D, deux d’entre elles ont été implémentées dans le logiciel développé.
Ces deux métaphores s’appuient sur un modèle de données contenant un grand nombre d’ef-
fectifs, ces informations seront nécessaires pour évaluer les règles. L’évaluation des règles et de
l’influence de chaque composante de la règle se fera via des mesures d’intérêt, que le logiciel
calculera à l’aide du modèle de données. Les exemples applicatifs mis en place permettent de
mieux appréhender les différents problèmes liés aux calculs et à la correspondance graphique
postérieure.
Le logiciel a été développé en C++, les données d’entrées sont fournies le dialecte PMML (basé
sur XML) et la couche graphique est prise en charge par la librairie GLUT.
3
Table des matières
Préambule 7
1 Introduction 8
1.1 Présentation de la problématique . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Travail réalisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Plan de l’étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Etat de l’art 12
2.1 Le processus de fouille de données (data mining) . . . . . . . . . . . . . . . . . 12
2.2 Les règles d’association et leur évaluation . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Les règles d’association . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Les mesures d’intérêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 La fouille visuelle de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 La fouille visuelle de données en général . . . . . . . . . . . . . . . . . 20
2.3.2 La fouille visuelle de règles d’association . . . . . . . . . . . . . . . . . 21
5
4.4 Autre métaphore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5 Développement 57
5.1 Modèle de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.1 Importation des données . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.2 Structuration des données d’affichage . . . . . . . . . . . . . . . . . . . 59
5.1.3 Transformation des données . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Affichage graphique des règles . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.1 Présentation d’OpenGL/GLUT . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.2 Fonctionnement basique . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.3 Représentation d’une règle par la métaphore 1 . . . . . . . . . . . . . . . 63
5.2.4 Représentation d’une règle par la métaphore 2 . . . . . . . . . . . . . . . 64
5.2.5 Fonctions graphiques importantes . . . . . . . . . . . . . . . . . . . . . 64
6 Conclusion 66
6.1 Résumé du travail effectué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 Enseignements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.3 Perspectives de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A Suivi 68
A.1 Diagramme de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
A.2 Fiches de suivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6
Préambule
7
Chapitre 1
Introduction
Cette partie dévoile le sujet choisi et sa problématique, les objectifs que l’on poursuit à travers
elle, le travail réalisé jusqu’ici, et le plan des chapitres suivants.
Objectivement, une règle d’association est définie par une prémisse, une conclusion. Les
deux entités sont des ensembles d’attributs (voir figure 1.1). La "règle" consiste en le fait que la
présence des attributs de la prémisse a une incidence sur la présence des attributs de la conclusion
dans les données. Il existe des mesures permettant de juger une règle sous différents aspects,
appelées mesures d’intérêt (lire [Fre99b] p2p3p4 et [Bla05] chap1)
Ce sujet pose le problème de l’aide que peut apporter une visualisation des connaissances
à la fouille des données. Le constat est le suivant : De nombreuses connaissances peuvent être
découvertes de manière objective sur des échantillons de données (voir figure 1.1 et lire [Lar05]
chap1 p12>17), mais de ces nombreuses connaissances (ici des règles), combien sont en réa-
lité pertinentes pour répondre au problème posé ? Quelle place pour une évaluation subjective ?
8
F IGURE 1.1 – Exemple de règle d’association, trouvé dans [Rak08] p7
Evaluer subjectivement une règle d’association est complexe pour un algorithme, le présence
d’un analyste, informé des enjeux décisionnels du problème à résoudre, serait une valeur ajou-
tée. Pour évaluer les règles d’association d’un point de vue subjectif, l’analyste devra être face à
une représentation suffisamment explicite, c’est là où une visualisation trouve son intérêt.
9
utilisateur-environnement, on peut également envisager une immersion complète de l’utilisateur
grâce à un équipement approprié (par exemple un écran stéréoscopique).
– Faire une synthèse bibliographique des travaux de recherche sur l’usage de la réalité
virtuelle en fouille de données Le but est ici de faire un état de l’art en ce qui concerne
la visualisation graphique des règles d’association, et de découvrir de facto pourquoi il
est opportun de développer une nouvelle solution s’appuyant sur de nouvelles métaphores
d’affichage.
– Implémenter l’outil Une fois la/les métaphores 3D établies ainsi que le modèle de don-
nées, il convient de passer à l’implémentation, et donc au développement d’une solution
logicielle performante. Nous avons choisi le langage C++ et la librairie OpenGL, ce qui
garantit un code propre, portable, et opérationnel sur différent systèmes d’exploitation.
– Tester et valider l’outil sur des jeux de données Le logiciel ne saurait être considéré
comme fiable sans une phase de test et d’expérimentation sur une base réelle de règles
d’association.
Ce travail a été réalisé dans sa globalité, les tests logiciels ont été réalisés sur des jeux de
données trouvés sur internet.
10
1.3 Plan de l’étude
Le présent rapport est organisé comme suit :
Le chapitre 3 expose le fonctionnement du logiciel actuel ARVIS, et tente de mettre ses forces
et ses faiblesses en exergue. La réflexion sera évidemment orientée vers la nouvelle solution que
l’on se propose d’implémenter, et sur les moyens de tirer au mieux parti des spécificités existantes
dans ARVIS.
Le chapitre 4 décrit la solution que l’on propose pour visualiser des règles d’association en
3D. Il s’agit des métaphores, c’est à dire d’un système permettant de transcrire des considérations
numériques en graphiques, dans le but d’offrir une visualisation explicite.
11
Chapitre 2
Etat de l’art
Il est bon de souligner que les données dont il est question sont organisées sous forme de
tableau, où une ligne s’appelle un enregistrement ou individu, et une colonne est un attribut
décrivant les individus (voir figure 2.1). De très nombreux cas de figures peuvent se présenter :
– Liste de personnes décrites par des caractéristiques physique (taille, poids, âge, sexe, cou-
leur des yeux etc.)
– Liste de tickets de caisse décrits par le fait qu’un produit ait été acheté ou pas
– Liste de phénomènes atmosphériques décrits par des indicateurs météorologiques (pres-
sion, précipitation, région etc.)
– etc. etc.
La définition de la fouille de données énoncée plus haut est purement empirique, de nombreux
chercheurs ont néanmoins cherché à mieux définir le domaine (se référer aux publications des
intéressés) :
12
F IGURE 2.1 – Exemple d’enregistrements, [Gui08a] p3
1. Nettoyage des données On effectue une première inspection sur les données, on comble
les vides, supprime les enregistrements erronés etc.
2. Intégration des données Si les données proviennent de différentes sources, on veille à
les intégrer, pour de posséder qu’une source, épurée, accessible etc. Cette source est plus
communément appelée "entrepot de données"
3. Sélection des données On sélectionne les données "utiles" aux analyse que l’on fera par
la suite
4. Transformation des données Une fois les bonnes données sélectionner, il convient de
s’assurer qu’elles sont dans une "forme" ou une "organisation" idoine pour leur analyse.
On les transforme au besoin
13
5. Fouille des données C’est ici que commence la fameuse "Torture" (voir définition plus
haut), on effectue de nombreuses analyse sur les données, pour tenter de former des mo-
dèles statistiques permettant de découvrir et/ou d’expliquer des comportements.
6. Evaluation des modèles Une fois les modèles obtenus, on les évalue en les testant sur de
nouvelles données, pour s’assurer de leur pertinence.
7. Présentation de la connaissance La connaissance que constituent ces modèles doit main-
tenant être exploitées par tout un chacun, on s’assure donc de la renvoyer sous une forme
suffisamment claire et concise.
(Définitions tirées de [HK01] chap2p7) Le schéma présent figure 2.2 modélise le processus
14
2.2 Les règles d’association et leur évaluation
2.2.1 Les règles d’association
Les règles d’association cherchent à trouver des correspondances dans les données, et donc
à isoler des règles d’incidence, la présence d’une ou plusieurs valeurs entraine la présence d’une
ou plusieurs autres etc. Pour avoir un raisonnement sur les valeurs des attributs, et non pas sur les
attributs eux mêmes, il convient d’opérer une sorte de discrétisation, pour obtenir un tableau bi-
naire traduisant la présence ou l’absence d’une certaine valeur d’un attribut (voir figure 2.3). Bien
entendu, si les valeurs sont trop éparpillées, on opère des regroupement par tranches (tranches
d’ages, tranche de températures etc.).
Dans une règle d’association (par exemple 2.1), l’ensemble (A, B) est appelé "prémisse", et
l’ensemble (C, D) la "conclusion". Un item de la prémisse ne peut pas appartenir à la conclusion
et vice-versa.
Dans notre exemple (figure 2.3), nous pourrions avoir des règles de la forme :
15
Un autre exemple pourrait être :
Nous avons vu dans cette section que les règles d’association illustraient les incidences que
peuvent entrainer certaines valeurs d’attributs sur les valeurs d’autres attributs. Il existe de nom-
breux indicateurs permettant d’évaluer ces règles à différents niveaux (généralité, validité, fia-
bilité, surprise...), une étude en est faite en section 2.2.2. Ce genre d’indicateur se nomme une
"mesure d’intérêt".
Il est bon de noter qu’il existe des algorithmes permettant de découvrir des règles d’associa-
tions dans des données, à partir de seuils imposés aux mesures d’intérêts. L’algorithme le plus
connu étant A Priori ([AS94]).
Une représentation graphique 3D d’une règle d’association peut déjà s’envisager en l’état, il
suffirait de représenter les attributs de la prémisse et de la conclusion (on parle d’"items") par
des sphères ou des cubes, et de relier les deux ensembles par une flèche. Mais pour faire une
sélection des règles "intéressantes" pendant une fouille de données comme expliqué au chapitre
1, il convient de représenter davantage d’informations sur la règle, et notamment concernant
l’implication de ses items. Toutes ces informations seront fournies par des mesures d’intérêt,
évaluant la règles et ces items de différentes manières, chacune très spécifique. Le chapitre 2.2.2
revient largement sur la définition d’une mesure d’intérêt.
Il existe donc des mesures permettant de juger de "l’efficacité" d’une règle, de la "quantité
d’information" qu’elle fournit etc. Ces mesures sont utiles pour évaluer une règle a priori, mais
également vis à vis des autres règles, on pourrait par exemple décider de ne sélectionner que les
dix meilleures règles. Une telle mesure est appelée une "mesure d’intérêt" d’une règle (lire en
priorité [Fre99b] p2p3p4 ainsi que [Bla05] chap1 et le support de cours [Gui08b] p5-10).
La littérature sus-citée s’accorde sur le fait que les mesures peuvent être regroupées en sous
catégories, les principales étant :
16
– Mesures de validité Une mesure de validité permet d’évaluer la correspondance entre la
présence des items de la prémisse, et la présence des items de la conclusion. Certaines
mesures s’accommodent de peu de calculs, d’autres prennent en compte les cas de figures
tels que les contre-exemples etc.
– Mesures de fiabilité Une mesure de fiabilité tente d’établir la côte ou la crédibilité d’une
règle.
Une liste non-exhaustive des mesures d’intérêt existantes est présentée figure 2.4.
|A∩B|
support(A → B) = p(AB) = |T |
(2.4)
Ici, | T | est le nombre total d’enregistrements de l’échantillon
17
En d’autres termes, il s’agit du rapport du nombre d’enregistrements où la prémisse et la conclu-
sion sont vérifiées, sur le nombre total d’enregistrements.
Dans l’échantillon 2.3, 14 enregistrements sont présents, et 2 d’entre eux vérifient (outlook =
sunny) ∩ (temperature = hot).
2
On peut donc affirmer : support[(outlook = sunny) → (temperature = hot)] = 14
Dans l’échantillon 2.3, la prémisse (outlook = sunny) est vérifié sur 5 enregistrements.
Seulement 2 enregistrements vérifient la prémisse et la conclusion (outlook = sunny)∩(temperature =
hot).
2
On peut donc affirmer : conf iance[(outlook = sunny) → (temperature = hot)] = 5
Un exemple du type suivant aurait été plus manifeste : lif t[(f umer = oui) → (cancer =
oui)] = 3 L’échantillon nous informe que les fumeurs ont trois fois plus de cancers que les autres.
18
Des algorithmes de découverte de règles d’association dans un échantillon de données existent,
le plus connu étant l’A Priori ([AS94]). Cet algorithme est basé sur des seuils de pertinence, il
s’agit d’évaluer les règles les unes après les autres, et de ne garder que celles qui ont les mesures
d’intérêt les plus élevées. Cet algorithme se sert de mesures probabilistes telles que le support
et la confiance pour fonctionner, les mesures non-probabilistes telles que le lift ne peuvent être
exploitées sans une évaluation subjective. Dans l’exemple précédent : "Trois fois plus de chance
d’avoir le cancer", "trois, est-ce suffisant ?", il est difficile de généraliser.
Au delà des évaluations objectives des règles à l’aide de mesures d’intérêt, il convient de se
replacer dans un contexte "métier". Une évaluation des règles d’association se conçoit la majeure
partie du temps dans le cadre d’une sélection. Voici donc posée la question suivante : "Peut on se
contenter de critères objectifs (mesures mathématiques) pour sélectionner les règles d’association
adaptées à la résolution d’un problème ?" La réponse est bien entendu négative, car deux règles
d’association ayant par exemple les même valeur de confiance et de support n’auront pas la même
utilité à un analyste, cherchant à résoudre un problème métier, les critères de sélection subjectifs
ont donc leur importance.
Pour permettre un bonne évaluation des règles par ces critères subjectifs, on entreprend d’or-
ganiser une plus grande participation de l’analyste (terme englobant l’utilisateur effectuant la
fouille) à la sélection des règles "pertinentes". En effet, c’est l’analyste qui, de par ses connais-
sances de l’environnement, possède une capacité d’observation de sélection et de tri des règles,
qu’il faut chercher à valoriser.
La problématique est posée : Comment faire intervenir l’analyste pour qu’il puisse opérer une
sélection des règles qui lui semblent "pertinentes" ? Si l’analyste intervient pendant le processus
de fouille (voir chap 2.1), cela ne pourra se faire que sur un échantillon réduit de règles, et non
sur l’ensemble exhaustif des règles possibles, car l’analyse en serait beaucoup trop longue et
complexe.
Il faut donc faire une sélection préalable, via un algorithme (APriori [AS94] ou autre), on
possèdera alors un nombre réduit de règles, où l’analyste pourra intervenir à son tour et opé-
rer une deuxième sélection plus subjective. Pour réaliser cette sélection, les règles doivent être
présentées à l’analyste. La présentation devra fournir un nombre conséquent d’informations, tels
19
que les noms des items, les valeurs de certaines mesures d’intérêt etc. De manière générale, tout
doit être fait pour que la sélection soit facilitée, mais néanmoins faite en connaissance de cause.
Pour présenter les règles à l’analyste, se pose la question de l’interface. Plusieurs solutions
peuvent être envisagées, la présentation "textuelle" via un tableau (manque de clarté), une modé-
lisation via une interface 2D, 3D, etc. Notre proposition détaillée dans le chapitre 4, implémente
cette technique de sélection via une interface 3D. Cette interface à été choisie pour le confort
visuelle qu’elle offre, sa capacité à afficher de nombreuses informations sur les règles via des
métaphores de représentation, et enfin sa facilité d’utilisation dans un contexte collaboratif (via
un grand écran stéréoscopique par exemple).
La fouille visuelle des données est un moyen d’exploitation des données qui peux aider no-
tablement à comprendre la complexité des forme des données, cela est du la capacité de l’esprit
humain à comprendre dans le sens visuel plutôt que dans le sens de données brutes ou textuels.
La fouille visuelle cherche à représenter un maximum d’informations après extraction et donc
aura besoin de plus de degré de liberté pour représenter ces informations.
Une bonne fouille ne pourra bien entendu se faire que si la représentation est suffisamment
claire et explicite.
Les techniques reposant sur la visualisation sont devenues de plus en plus importantes en
ECD (Extraction de Connaissances dans les Données) pour l’exploration d’ensembles de don-
nées multidimensionnelles, de grandes tailles (nombreux enregistrements). Ce procédé ne cesse
de se développer encore aujourd’hui (lire [ASAVK07] p2).
Néanmoins durant cette période [1995-2000], il n’existait pas réellement de système vraiment
adapté à la visualisation, cette absence était principalement due au développement rapide des
bases de données modernes, et de la 3D. Le langage le plus adapté à la visualisation de données
à cette époque s’appelait IDL (Interactive Data Language), et était dédié au traitement et à la
visualisation de données, de dernier crée en fin des années 1970 avec une licence propriétaire
était plus adapté a la programmation que d’autres langages existants (Fortran, C, etc.) pour des
raisons de performance jusqu’au début des années 1990.
20
En 1998, l’outil aiSee (voir image 2.5) de la société allemande absint faisait son apparition. A
l’origine conçu pour visualiser les structures de données des compilateurs (voir http ://www.absint.com/aisee/),
cet outil s’est très vite diversifié dans la représentation de graphiques, diagrammes, arbres, don-
nées, algorithmes etc. Il propose aujourd’hui diverses opérations pour la manipulation et la vi-
sualisation des graphes, il permet aussi de réaliser des opérations sur les règles d’association, et
possède de nombreuses autres fonctionnalités.
L’outil LARM (Large Association Rules Mining, voir image 2.6) affiche dans son interface
une vue générale des règles, colorées graduellement. Grâce au module FEV (FishEyeView),
l’utilisateur peut également obtenir une information détaillée sur une règle repérée visuellement.
D’autres outils existent pour la visualisation, tels que Infovis (en 2D, voir image 2.7), où
d’autres à base d’applet JAVA (voir image 2.8).
Aujourd’hui, la mode est à la visualisation interactive en trois dimensions car, bien qu’elle
nécessite la présence d’un analyste, elle permet d’optimiser la sélection des règles d’associations
pertinentes (lire [ASAVK07] p16-17-18). Les logiciels du genre florissent sur le marché, citons
par exemple Miner3D, qui offre de nombreux outils de mining et de BI (clustering en 3D , OLAP
en 3D ...), mais pas de visualisation 3D de règles d’associations. Un autre produit d’IBM intitulé
21
F IGURE 2.6 – Outil LARM (Large Association Rules Mining), [ASAVK07] p22
Many eyes va dans le même sens que Miner3D, mais ne prend pas non plus en charge les règles
d’association.
K.wiz est quant à lui un produit payant(kdnuggets library softwares), mais sans doute plus in-
téressant en terme de visualisation, grâce à des méthodes implémentées en java. Le logiciel offre
de nombreux outils d’analyse statistique pour faire le traitement à partir d’un logiciel serveur
relié à une source de données (voir [DUG04])
L’inconvénient reste le même que l’outil ARVis (également développé en java) : le temps
d’exécution ! En effet, le domaine est connu pour brasser d’énormes quantités de données, ce
qui demande une grande dynamique et une bonne performance de calcul, ce que java n’a pas
la réputation d’offrir, en comparaison d’autres outils. ARVis est également proche d’ARViewer
(voir [Jou] ), bien que ce dernier soit un peu différent dans la manière de représenter les règles.
Il existe bien évidemment d’autres outils de visualisation de règles d’association, mais cela
reste limité. Les dimensions géographiques ainsi que les algorithmes utilisés ne sont pas opti-
22
F IGURE 2.8 – Outil applet java, [ASAVK07] p22
maux, et la spécificité du domaine freine la croissance. Après cette réflexion, force est de consta-
ter qu’il existe de la place pour un challenger, qui représenterai les règles d’association dans un
espace 3D, et serait suffisamment intuitif pour permettre une fouille de données optimale. Nous
nous proposons de développer ce challenger !
23
Chapitre 3
Les deux approches que ARVis peut traiter sont les suivantes :
– La mesure de la qualité des règles par des indices numériques
– La supervision du post-traitement par une visualisation interactive
Deux versions de ARVis existent, 1.1 et 1.2, avec des fonctionnalités plus complètes et dé-
veloppés dans la deuxième version. La version 1.1 propose de multiples relations de voisinage,
et utilise un indice descriptif d’écart à l’équilibre, un autre d’écart à l’indépendance, un autre
d’écart à l’équilibre, et un indice statistique d’écart à l’indépendance pour évaluer les règles. La
nouvelle version utilise a contrario la méthodologie Rule Focusing pour la visualisation interac-
tive des règles.
24
F IGURE 3.1 – L’outil ARVis (Association Rule Visualization) [Bla05] p122
Conclusion :
ARVis est loin d’avoir une représentation très parlante des règles, on peut également noter que la
représentation actuelle des règles (cône et sphère) ne permet pas une granularité suffisante pour
connaitre le rôle joué par chaque attribut. Ce genre d’information peut être très utile dans le choix
d’une règle, a fortiori si il s’agit d’un post-traitement effectué sur un échantillon de règle déjà
filtré par des algorithmes ad hoc type A Priori.
La représentation des règles telle qu’offerte dans ARVis offre néanmoins une base de ré-
flexion pour le développement de notre outils, les défauts d’ARVis constituent également des
pistes permettant de nous aider à développer un outil optimal.
25
Chapitre 4
Proposition de métaphores de
représentation 3D
Pour pouvoir représenter au mieux les règles d’association dans le logiciel que nous avons
développé, il fallait s’appuyer sur de bonnes métaphores de représentation. Nous en proposons
ici trois, les deux premières étant implémentées dans le logiciel. Le choix d’une représentation
en trois dimensions est expliqué au chapitre 1, section 1.1.
26
Le modèle de données doit fournir également le nombre d’enregistrements de l’échantillon
d’où ces informations ont été extraites.
On fait une évaluation au bas mot du nombre des données qui devront accompagner une
règle, on s’efforce de respecter la syntaxe 4.1 utilisée en section 4.2.2.
4. Les effectifs des items de la conclusion On calcule de même pour la conclusion dans le
tableau 4
Tableau des effectifs à fournir pour la conclusion
Ordre (Nombre d’attributs) Exemple Cardinalité
1 n(Y1 ) 1
2 n(Y1 )n(Y2 )n(Y1 , Y2 ) 3
n(Y1 )n(Y2 )n(Y3 )n(Y1 , Y2 )
3 7
n(Y2 , Y3 )n(Y1 , Y3 )n(Y1 , Y2 , Y3 )
... ... ...
q
q ... 2 −1
F IGURE 4.2 – Tableau des effectifs à fournir pour la conclusion
Pour l’instant, on doit fournir [(2p − 1) + (2q − 1)] effectifs dans le modèle de données.
27
5. Les effectifs des relations inter-ensembles, avec au minimum un item de la prémisse et
un de la conclusion On doit également fournir les effectifs des relations inter-ensembles,
nous en aurons besoin pour des mesures spécifiques. Par exemple, pour calculer l’influence
d’un attribut de la prémisse sur un de la conclusion, ou l’influence d’un attribut de la
prémisse sur toute la conclusion etc.
On dois donc fournir au bas mot [(2p − 1) + (2q − 1)] + 3p+q−2 effectifs dans le modèle
de données de la règle.
Ce modèle de données nous dispense de fournir un échantillon, qui pourrait s’avérer volumi-
neux, il contient diverses informations qui vont nous aider à évaluer la règle. Le but étant par la
suite de calculer, puis d’exploiter ces évaluations via une représentation graphique se basant sur
nos métaphores 3D (relire 4.2.1 et 4.3.1).
28
4 <!ELEMENT ITEMS (ITEM+)>
5 <!ELEMENT ITEM EMPTY>
6 <!ELEMENT EFFECTIFS (EFFECTIF+)>
7 <!ELEMENT EFFECTIF (REFEFF+)>
8 <!ELEMENT REFEFF EMPTY)>
9 <!ELEMENT EREGLES (REGLE+)>
10 <!ELEMENT REGLE (REF+)>
11 <!ELEMENT REF EMPTY)>
12
4 <REGLES>
5 <ECHANTILLON nombreEnregistrements="30">
6 <ITEMS>
7 <ITEM id="A"/>
8 <ITEM id="B"/>
9 <ITEM id="C"/>
10 <ITEM id="D"/>
11 </ITEMS>
12 <EFFECTIFS>
13 <EFFECTIF valeur="4">
14 <REFEFF refitem="A">
15 </EFFECTIF>
16 <EFFECTIF valeur="4">
17 <REFEFF refitem="B">
18 </EFFECTIF>
19 <EFFECTIF valeur="4">
20 <REFEFF refitem="C">
21 </EFFECTIF>
22 <EFFECTIF valeur="4">
23 <REFEFF refitem="D">
24 </EFFECTIF>
25 <EFFECTIF valeur="4">
26 <REFEFF refitem="A">
27 <REFEFF refitem="B">
28 </EFFECTIF>
29
29 <EFFECTIF valeur="4">
30 <REFEFF refitem="C">
31 <REFEFF refitem="D">
32 </EFFECTIF>
33 <EFFECTIF valeur="4">
34 <REFEFF refitem="A">
35 <REFEFF refitem="C">
36 </EFFECTIF>
37 <EFFECTIF valeur="4">
38 <REFEFF refitem="A">
39 <REFEFF refitem="D">
40 </EFFECTIF>
41 <EFFECTIF valeur="4">
42 <REFEFF refitem="B">
43 <REFEFF refitem="C">
44 </EFFECTIF>
45 <EFFECTIF valeur="4">
46 <REFEFF refitem="B">
47 <REFEFF refitem="D">
48 </EFFECTIF>
49 <EFFECTIF valeur="4">
50 <REFEFF refitem="A">
51 <REFEFF refitem="B">
52 <REFEFF refitem="C">
53 </EFFECTIF>
54 <EFFECTIF valeur="4">
55 <REFEFF refitem="A">
56 <REFEFF refitem="B">
57 <REFEFF refitem="D">
58 </EFFECTIF>
59 <EFFECTIF valeur="4">
60 <REFEFF refitem="A">
61 <REFEFF refitem="C">
62 <REFEFF refitem="D">
63 </EFFECTIF>
64 <EFFECTIF valeur="4">
65 <REFEFF refitem="B">
66 <REFEFF refitem="C">
67 <REFEFF refitem="D">
68 </EFFECTIF>
69 <EFFECTIF valeur="4">
70 <REFEFF refitem="A">
71 <REFEFF refitem="B">
72 <REFEFF refitem="C">
73 <REFEFF refitem="D">
30
74 </EFFECTIF>
75 </EFFECTIFS>
76 <EREGLES>
77 <REGLE>
78 <REF categorie="premisse" refitem="A"/>
79 <REF categorie="premisse" refitem="C"/>
80 <REF categorie="conclusion" refitem="D"/>
81 </REGLE>
82 <REGLE>
83 <REF categorie="premisse" refitem="A"/>
84 <REF categorie="conclusion" refitem="B"/>
85 <REF categorie="conclusion" refitem="C"/>
86 </REGLE>
87 <EREGLES>
88 </ECHANTILLON>
89 </REGLES>
La version 1.0 du désormais "standard" PMML est sortie en 2002, le format a peu à peu
évolué pour intégrer la majorité des modèles utilisés en data mining (réseaux de neurones, mo-
dèles de régression, règles d’association, scoring etc..). Aujourd’hui, le format est disponible
en version 4.0 et son intégration est de plus en plus effective chez les éditeurs logiciels du do-
maine (IBM, KXEN, Microsoft, MicroStrategy, SAP etc.). Certains restent néanmoins attachés
au privilège des formats propriétaires, tels que Cognos ou Business Objects.
La syntaxe XML complète du PMML est disponible sur le site officiel du consortium DMG
(dmg.org), le document ci-après présente uniquement la syntaxe concernant le modèle des règles
d’association.
1 <xs:element name="AssociationModel">
2 <xs:complexType>
3 <xs:sequence>
4 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
31
5 <xs:element ref="MiningSchema"/>
6 <xs:element ref="Output" minOccurs="0"/>
7 <xs:element ref="ModelStats" minOccurs="0"/>
8 <xs:element ref="LocalTransformations" minOccurs="0"/>
9 <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded"/>
10 <xs:element ref="Itemset" minOccurs="0" maxOccurs="unbounded"/>
11 <xs:element ref="AssociationRule" minOccurs="0" maxOccurs="
unbounded"/>
12 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
13 </xs:sequence>
14 <xs:attribute name="modelName" type="xs:string"/>
15 <xs:attribute name="functionName" type="MINING-FUNCTION" use="
required"/>
16 <xs:attribute name="algorithmName" type="xs:string"/>
17 <xs:attribute name="numberOfTransactions" type="INT-NUMBER" use="
required"/>
18 <xs:attribute name="maxNumberOfItemsPerTA" type="INT-NUMBER"/>
19 <xs:attribute name="avgNumberOfItemsPerTA" type="REAL-NUMBER"/>
20 <xs:attribute name="minimumSupport" type="PROB-NUMBER" use="
required"/>
21 <xs:attribute name="minimumConfidence" type="PROB-NUMBER" use="
required"/>
22 <xs:attribute name="lengthLimit" type="INT-NUMBER"/>
23 <xs:attribute name="numberOfItems" type="INT-NUMBER" use="
required"/>
24 <xs:attribute name="numberOfItemsets" type="INT-NUMBER" use="
required"/>
25 <xs:attribute name="numberOfRules" type="INT-NUMBER" use="
required"/>
26 </xs:complexType>
27 </xs:element>
28 <xs:element name="Item">
29 <xs:complexType>
30 <xs:sequence>
31 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
32 </xs:sequence>
33 <xs:attribute name="id" type="xs:string" use="required"/>
34 <xs:attribute name="value" type="xs:string" use="required"/>
35 <xs:attribute name="mappedValue" type="xs:string"/>
36 <xs:attribute name="weight" type="REAL-NUMBER"/>
37 </xs:complexType>
38 </xs:element>
39 <xs:element name="Itemset">
32
40 <xs:complexType>
41 <xs:sequence>
42 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
43 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ItemRef"/>
44 </xs:sequence>
45 <xs:attribute name="id" type="xs:string" use="required"/>
46 <xs:attribute name="support" type="PROB-NUMBER"/>
47 <xs:attribute name="numberOfItems" type="xs:nonNegativeInteger"/>
48 </xs:complexType>
49 </xs:element>
50 <xs:element name="ItemRef">
51 <xs:complexType>
52 <xs:sequence>
53 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
54 </xs:sequence>
55 <xs:attribute name="itemRef" type="xs:string" use="required"/>
56 </xs:complexType>
57 </xs:element>
58 <xs:element name="AssociationRule">
59 <xs:complexType>
60 <xs:sequence>
61 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/
>
62 </xs:sequence>
63 <xs:attribute name="antecedent" type="xs:string" use="required"/>
64 <xs:attribute name="consequent" type="xs:string" use="required"/>
65 <xs:attribute name="support" type="PROB-NUMBER" use="required"/>
66 <xs:attribute name="confidence" type="PROB-NUMBER" use="required"
/>
67 <xs:attribute name="lift" type="xs:float" use="optional"/>
68 <xs:attribute name="id" type="xs:string" use="optional"/>
69 </xs:complexType>
70 </xs:element>
33
7 </Header>
8 <DataDictionary numberOfFields="1">
9 <DataField name="Valeurs" optype="categorical" dataType="string">
10 <Extension name="storageType" value="string"/>
11 <Value value="A" property="valid"/>
12 <Value value="B" property="valid"/>
13 <Value value="C" property="valid"/>
14 </DataField>
15 </DataDictionary>
16 <AssociationModel modelName="TEST" functionName="associationRules"
numberOfTransactions="15" numberOfItems="3" numberOfItemsets="7"
numberOfRules="2">
17 <MiningSchema>
18 <MiningField name="Valeurs" usageType="active"/>
19 </MiningSchema>
20 <Item id="1" value="A"/>
21 <Item id="2" value="B"/>
22 <Item id="3" value="C"/>
23 <Itemset id="1" numberOfItems="1" support="">
24 <ItemRef itemRef="1"/>
25 </Itemset>
26 <Itemset id="2" numberOfItems="1" support="">
27 <ItemRef itemRef="2"/>
28 </Itemset>
29 <Itemset id="3" numberOfItems="1" support="">
30 <ItemRef itemRef="3"/>
31 </Itemset>
32 <Itemset id="4" numberOfItems="2" support="">
33 <ItemRef itemRef="1"/>
34 <ItemRef itemRef="2"/>
35 </Itemset>
36 <Itemset id="5" numberOfItems="2" support="">
37 <ItemRef itemRef="2"/>
38 <ItemRef itemRef="3"/>
39 </Itemset>
40 <Itemset id="6" numberOfItems="2" support="">
41 <ItemRef itemRef="1"/>
42 <ItemRef itemRef="3"/>
43 </Itemset>
44 <Itemset id="7" numberOfItems="3" support="">
45 <ItemRef itemRef="1"/>
46 <ItemRef itemRef="2"/>
47 <ItemRef itemRef="3"/>
48 </Itemset>
49 <AssociationRule id="1" support="" confidence="" lift="" antecedent
34
="1" consequent="2"/>
50 <AssociationRule id="2" support="" confidence="" lift="" antecedent
="3" consequent="4"/>
51 </AssociationModel>
52 </PMML>
4.2 Métaphore 1
On présente ici la première métaphore de représentation 3D, cette section inclut les mesures
d’intérêt utilisées, ainsi que la représentation de ces dernières, et deux exemples détaillés.
4.2.1 Présentation
La première métaphore que nous proposons implémente les concepts suivants :
1. Représentation de l’implication brute de chaque item
2. Représentation des relations inter-items au sein des deux ensembles (prémisse, conclusion)
3. Représentation de l’implication d’un item sur l’autre ensemble (un item de la prémisse sur
la conclusion et vice-versa)
4. Représentation d’une mesure d’intérêt globale de la règle
Ces concepts à représenter, décidés d’un commun-accord avec nos encadrants, doivent per-
mettre une représentation claire de la règle et des mesures la concernant, en prenant en compte
l’implication de chaque item. Le niveau de granularité atteint sera alors supérieur à celui de l’ou-
til ARVIS (voir chap 3), qui ne prenait pas en compte l’individualité des items et l’implication
de chacun d’entre eux.
Graphiquement :
1. Représentation de l’implication brute de chaque item On représente un item par une
sphère, le diamètre de la sphère varie en fonction du gain d’information de Freitas (voir
équation 4.4) de l’item. Cette mesure d’intérêt nous donnera l’implication de l’item dans la
règle, et la représentation graphique permettra à l’utilisateur de se rendre très vite compte
des items les plus significatifs.
2. Représentation des relations inter-items au sein des deux ensembles Cette représenta-
tion graphique doit nous dire si la présence d’un item favorise la présence d’un autre, au
sein des deux ensembles. On représente graphiquement ce lien par la distance entre les
sphères, si deux sphères de la prémisse sont proches, on pourra en déduire que les deux
items sont très corrélés.
L’information nous donnant la corrélation entre différents items d’un même ensemble est
35
l’inverse du lift (voir section 4.2.2). Un lift élevé coïncidant avec une forte corrélation,
l’inverse permet de conclure à une grande corrélation à partir d’une valeur faible, ce qui
est plus facile à modéliser par une distance.
4. Représentation d’une mesure d’intérêt globale de la règle On représente enfin une me-
sure d’intérêt globale s’appliquant à la règle, pour en avoir une évaluation générale et non
granuleuse. Cette mesure est représentée par un lien entre la prémisse et la conclusion, la
longueur de ce lien évaluant la règle.
Il convient de fixer les extrémités de ce lien, on veillera donc à déterminer deux points,
un dans chaque ensemble, représentant un certain "centre de gravité" et permettant de re-
lier un ensemble à l’ensemble opposé.
Par la suite, et comme indiqué au début du chapitre 4, nous aurons à déterminer les informa-
tions suivantes pour pouvoir représenter graphiquement les règles :
– Les items de sa prémisse (fourni par le modèle de données)
– Les items de sa conclusion (fourni par le modèle de données)
– Pour chaque item : la mesure du gain d’information de Freitas (voir 4.4)
– Pour chaque item : Une mesure de confiance représentant l’implication vis à vis de l’autre
itemset (voir 2.5)
– Pour chaque item : Une relation vers chacun des autres items présent dans l’ensemble, avec
une mesure du lift précisé dans ce lien (voir 4.2)
– Pour toute la règle : Une mesure d’intérêt globale, nommée et évaluée
Les distances, diamètres de sphères et autres longueurs de lien seront calculées par le logiciel,
à partir de ces informations.
36
4.2.2 Mesures d’intérêt utilisées
On décrit ici les mesures d’intérêt utilisées dans la métaphore 1. Dans ce qui va suivre :
Le lift
Le lift a déjà été défini à l’équation 2.6 de la section 2.2.
conf iance(X → Y ) | X ∩ Y | | T |
lif t(X → Y ) = = ∗
support(Y ) |X| |Y |
On représente la corrélation entre deux items d’un même ensemble par un lien entre eux, c’est la
couleur du lien qui permettra d’évaluer la corrélation. On utilise le lift pour cette évaluation, étant
donné que le lift est une mesure non probabiliste pouvant donc prendre des valeurs supérieures
à 1, on se ramène à l’inverse du lift, on appelle la valeur relationLift. Si la valeur du lift est
inférieure à 1, la corrélation est insignifiante, c’est donc ici le même principe, pour une valeur
supérieure à 1.
1
relationLif t(X → Y ) = lif t(X→Y ) (4.2)
La confiance
La confiance a déjà été définie à l’équation 2.5 de la section 2.2.
p(XY ) | X ∩ Y | nXY
conf iance(X → Y ) = = =
p(X) |X| nX
37
Le but est de déterminer l’implication d’un item sur l’autre ensemble, on va donc utiliser un
quotient, pour cela on définit l’implicationConfiance. Cet indicateur représente le quotient de la
confiance obtenue en enlevant l’item de la règle, par la confiance initiale de la règle.
implicationConf iance(Xi → Y ) =
(4.3)
conf iance(X−{Xi }→Y )
conf iance(X→Y )
La mesure de confiance est également utilisée par défaut comme mesure d’intérêt générale
de la règle
38
– RelationLift (4.2), corrélation entre deux items d’un même ensemble [0; +∞] Si cette
valeur est supérieure à 1, cela signifie que le lift était inférieur à 1, la corrélation est donc
insignifiante. On fait en sorte que la transcription respecte cela. Graphiquement, un lien est
représenté entre les sphères des ensembles, deux à deux, et c’est la couleur de ce lien qui
renseigne sur l’importance de la corrélation. On transcrit de la manière suivante :
– ImplicationConfiance (4.3), implication d’un item sur l’autre ensemble [0; +∞] Si
cette valeur est supérieure à 1, la confiance de la règle augmente en l’absence de l’item,
il n’a donc aucune importance. On fait en sorte que la transcription respecte cela. Graphi-
quement, c’est la couleur de la sphère représentant l’item qui renseigne sur l’implication
de l’item sur l’ensemble opposé. On transcrit de la manière suivante :
– Gain d’information de Freitas (4.4), implication générale d’un item [0; 1] Si cette va-
leur est faible, l’item n’apporte pas beaucoup d’information, une valeur élevée signifie a
contrario que l’item apporte beaucoup d’informations. Graphiquement, c’est le rayon de
la sphère représentant l’item qui renseigne sur l’implication de l’item. On transcrit de la
manière suivante :
– Confiance générale de la règle (2.5) [0; 1] Plus cette valeur est élevée, plus la règle est
"valide". Graphiquement, c’est un lien entre la zones des sphères de la prémisse et la zone
des sphères de la conclusion qui représente cette mesure. La longueur du lien renseigne
sur son importance. On transcrit de la manière suivante :
39
4.2.4 Exemples applicatifs
Exemple 1
On étudie un exemple applicatif des métaphores, basé sur l’échantillon présent en figure 2.3.
On utilise la règle suivante : (Outlook = overcast, T emperature = hot) → (W indy = f alse)
Modèle de données
On fourni au logiciel un modèle de données, contenant toutes les informations nécessaires pour
calculer les mesures qui permettront de représenter graphiquement la règle. Ce modèle est fourni
selon le format XML personnalisé (4.1.2), avant la migration vers le format PMML (4.1.3) :
1 <?xml version="1.0" encoding="iso-8859-15"?>
2 <!DOCTYPE INFO SYSTEM "DTDmeta1.dtd">
3
5 <REGLES>
6 <REGLE nombreEnregistrements="14">
7 <ITEMS nombrePremisse="2" nombreConclusion="1">
8 <ITEM ensemble="premisse" id="O=o"/>
9 <ITEM ensemble="premisse" id="T=h"/>
10 <ITEM ensemble="conclusion" id="W=f"/>
11 </ITEMS>
12 <EFFECTIFS>
13 <EFFECTIF valeur="4">
14 <REF refitem="O=o">
15 </EFFECTIF>
16 <EFFECTIF valeur="4">
17 <REF refitem="T=h">
18 </EFFECTIF>
19 <EFFECTIF valeur="8">
20 <REF refitem="W=f">
21 </EFFECTIF>
22 <EFFECTIF valeur="2">
23 <REF refitem="O=o">
24 <REF refitem="T=h">
25 </EFFECTIF>
26 <EFFECTIF valeur="2">
27 <REF refitem="O=o">
28 <REF refitem="W=f">
29 </EFFECTIF>
30 <EFFECTIF valeur="3">
31 <REF refitem="T=h">
32 <REF refitem="W=f">
33 </EFFECTIF>
40
34 <EFFECTIF valeur="2">
35 <REF refitem="O=o">
36 <REF refitem="T=h">
37 <REF refitem="W=f">
38 </EFFECTIF>
39 </EFFECTIFS>
40 </REGLE>
41 </REGLES>
8 8
Inf o(W = f ) = − 14 log( 14 )
4
Inf o(W = f | O = o) = [ 14 (− 42 log 24 )]
10 6 6
+[ 14 (− 10 log 10 )]
On obtient donc :
GainInf o(O = o) = 0.426 − 0.138
(4.8)
GainInf o(O = o) = 0.288
41
On calcule de la même manière pour le deuxième attribut de la prémisse :
|(O=o,T =h)∩(W =f )|
Conf (O = o, T = h → W = f ) = |W =f | (4.11)
2
Conf (O = o, T = h → W = f ) = 2
=1
2
Conf (W = f → O = o, T = h) = 2
=1
Règle : (T = h → W = f )
|(T =h)∩(W =f )|
Conf (T = h → W = f ) = |W =f | (4.13)
3
Conf (T = h → W = f ) = 4
Règle : (O = o → W = f )
|(O=o)∩(W =f )|
Conf (O = o → W = f ) = |W =f | (4.14)
2
Conf (O = o → W = f ) = 4
42
Si l’on retire l’item W = f de la règle inverse, la prémisse n’admettra plus d’items, ce qui
est impossible dans une règle d’association. On ne calcule donc pas la confiance de cette règle,
et on admettra par la suite une implication maximale à cet item, c’est à dire 0.
On obtient donc :
Conf (T =h→W =f )
ImpliConf (O = o) = Conf (O=o,T =h→W =f )
3
3
ImpliConf (O = o) = 4
1
= 4
Conf (O=o→W =f )
ImpliConf (T = h) = Conf (O=o,T =h→W =f )
(4.15)
2
2
ImpliConf (T = h) = 4
1
= 4
ImpliConf (W = f ) = Conf (W = f → O = o, T = h)
ImpliConf (W = f ) = 0
L’interprétation est que (W = f ) a une importance capitale, ce qui est logique. On trouve éga-
lement que (T = h) a plus d’importance que (O = o), car l’absence de (T = h) est plus
dommageable à la confiance que l’absence de (O = o)
Calcul du lift :
|O=o∩T =h|∗|T |
lif t(O = o → T = h) = |O=o|∗|T =h|
2∗14 28 7
lif t(O = o → T = h) = 4∗4 = 16 = 4
1 4
relationLif t(O = o → T = h) = lif t(O=o→T =h) = 7
(4.16)
43
La confiance générale de la règle a déjà été calculée en 4.11
L’espace est ici présent pour rappeler que l’on évolue dans un environnement 3D, l’arrière
plan sera représenté dans le logiciel par une "arène", fournie par nos encadrants. La représenta-
tion s’effectue de la même manière que l’outil ARVis, c’est à dire par classification des règles
selon les items les composants, et dans l’arène selon le critère d’évaluation générale des règles.
Notre règle est celle présente au premier plan, on remarque que la couleur est verte en conclu-
sion car l’item est indispensable, et qu’elle est plus proche du rouge dans les autres cas, car la
mesure de confiance était beaucoup moins concluante. Le rapprochement des deux sphères re-
flète la relation via le lift, et on voit que la sphère représentant l’item de conclusion est très étroite,
ce qui est dû à un gain d’information extrêmement faible. Le lien blanc représente la confiance
globale de la règle.
On étudie un exemple applicatif des métaphores, via un modèle de données issu du logiciel
de data mining WEKA. Ce logiciel analyse des échantillons de données, et découvre des règles
d’association grâce, entre autres, à l’algorithme A Priori. Le logiciel que nous développons ne
servira pas à découvrir des règles d’association, c’est pourquoi une bonne opportunité serait de
se servir d’une solution telle que WEKA (ou analogue) pour générer les fichiers XML qui seront
exploités par notre logiciel. Il faudrait pour cela pouvoir générer un fichier à partir des résultats,
ou les règles seront présentes, ainsi que les effectifs nécessaires.
Ces règles sont issues de l’analyse d’un échantillon présent dans Weka, et décrivant des plants
de soja, via 35 attributs et 683 enregistrements. Toutes les informations sur les effectifs sont
disponibles dans les résultats 4.5, on a donc suffisamment d’informations pour démarrer une
analyse.
On analyse la règle suivante : (mycelium = absentint − discolor = none) → (sclerotia =
absent), que l’on renomme pour l’occasion (M = a, ID = n) → (S = a)
44
F IGURE 4.4 – Exemple de la métaphore 1 : Représentation souhaitée
45
F IGURE 4.5 – Liste des règles d’association découvertes par Weka (A Priori)
44 6 6
+[ 683 (− 44 log 44 )]
46
On obtient donc :
GainInf o(M = a) = 0.035 − 0.0125
(4.19)
GainInf o(M = a) = 0.0225
|(M =a,ID=n)∩(S=a)|
Conf (M = a, ID = n → S = a) = |S=a| (4.22)
575
Conf (M = a, ID = n → S = a) = 625
= 0.92
|(S=a)∩(M =a,ID=n)|
Conf (S = a → M = a, ID = n) = |M =a,ID=n| (4.23)
575
Conf (S = a → M = a, ID = n) = 575
=1
Règle : (ID = n → S = a)
|(ID=n)∩(S=a)|
Conf (ID = n → S = a) = |S=a| (4.24)
581
Conf (ID = n → S = a) = 625
= 0.9296
47
Règle : (M = a → S = a)
|(M =a)∩(S=a)|
Conf (M = a → S = a) = |S=a| (4.25)
619
Conf (M = a → S = a) = 625
= 0.9904
Si l’on retire l’item S = a de la règle inverse, la prémisse n’admettra plus d’items, ce qui est
impossible dans une règle d’association. On ne calcule donc pas la confiance de cette règle, et on
admettra par la suite une implication maximale à cet item, c’est à dire 0.
On obtient donc :
Conf (ID=n→S=a)
ImpliConf (M = a) = Conf (M =a,ID=n→S=a)
0.9296
ImpliConf (M = a) = 0.92
>1
(4.26)
Conf (M =a→S=a)
ImpliConf (ID = n) = Conf (M =a,ID=n→S=a)
0.9904
ImpliConf (ID = n) = 0.92
>1
ImpliConf (S = a) = 0
L’interprétation est que (S = a) a une importance capitale, ce qui est logique. On trouve égale-
ment que (M = a) et (ID = n) n’ont pas d’importance, car la confiance augmente quand ces
attributs sont supprimés.
48
la relation les unissant.
Calcul du lift :
|M =a∩ID=n|∗|T |
lif t(M = a → ID = n) = |M =a|∗|ID=n|
575∗683 392725
lif t(M = a → ID = n) = 639∗581 = 313159
Notre règle est celle présente au premier plan (figure 4.6), on remarque que la couleur est
verte en conclusion car l’item est indispensable, et qu’elle est rouge en prémisse, car l’implication
des deux items est extrêmement faible. Les trois sphères ont des diamètres très faibles, car les
gains d’informations relevés sont également très faible. Enfin, les deux sphères de la prémisse
sont rapprochées, car la relation les unissant (inverse du lift) est bien prononcée (valeur faible).
49
F IGURE 4.6 – Exemple de la métaphore 1 (WEKA) : Représentation souhaitée
4.3 Métaphore 2
On présente ici la deuxième métaphore de représentation 3D, cette section inclut les mesures
d’intérêt utilisées, ainsi que la représentation de ces dernières, et un exemple.
4.3.1 Présentation
Cette métaphore est complémentaire de la première, et descend à un plus faible niveau de
granularité puisqu’elle s’interroge sur l’implication de chacun des items de la prémisse sur cha-
cun des items de la conclusion, ce qui apporte encore plus d’informations.
Par exemple : On apprend que la présence de tel item de la prémisse entraine souvent la pré-
sence de tel item de la conclusion, ce qui n’est pas forcément le cas dans les autres items de la
prémisse.
50
Cette métaphore est caractérisée par :
La relation entre les items dans la prémisse pourra être aussi une mesure importante, car en
général nous nous intéressons aux similarités entre ces items ou bien à l’influence qu’ils exercent
l’un sur l’autre.
cette règle est bien différente (au niveau de la prémisse seulement) de la règle suivante :
Eau gazeuse + Télévision —» Coca cola
Dans la deuxième on voit bien que entre Eau et Télévision, il n’y a pas une grande informa-
tion, c’est à dire un sens ou une relation qui peux lier les deux. Par contre dans la première, nous
devons avoir une influence d’un item sur l’autre.
La mesure qui peut nous régler cette problématique est l’inverse du lift, car le lift est une
mesure de similarité donc plus c’est similaire plus c’est élevé, alors que ce doit être l’inverse en
représentation : Plus la distance est petite, plus c’est similaire. Cette valeur est représentée par
la distance entre les deux sphères de la prémisse, si deux sphères sont rapprochées au sein d’un
ensemble, on pourra en déduire que les deux items représentés sont corrélés.
D’un autre coté, on représente les relations unissant les items au sein des deux ensembles. Cette
représentation doit nous dire si la présence d’un item favorise la présence d’un autre, on utili-
sera la confiance comme mesure d’intérêt en pratique. On retient cette mesure d’intérêt car il
s’agit d’une mesure probabiliste qui peut représenter l’implication d’un item sur un autre ; plus
la confiance est grande plus la probabilité d’avoir cette règle est grande.
Il est à noter que le représentation géographique correspondant à cette mesure est soit l’épais-
seur de la liaison soit la couleur et non pas la distance entre les items car cela provoquerai une
contrainte au niveau des degrés de libertés dans l’espace. Notre choix s’est porté sur la couleur de
la liaison, sauf que dans un premier temps nous ne occupons pas de discrétisation de la couleur.
Dans cette métaphore, les liens inter-items représentent les taux d’implication, le but de cette
représentation est de montrer l’influence de chaque item sur les autres soit dans la prémisse soit
dans la conclusion.
51
Dans cette métaphore nous implémentons l’algorithme de gestion 3D équivalent en physique
moléculaire à un algorithme "effet-ressort" ou "force-attraction", ce dernier permet la gestion/-
déplacements des items en 3D avec notre proposition de modèle (couleurs et distance etc.).
Le lift
Le lift a déjà été défini à l’équation 2.6 de la section 2.2.
conf iance(X → Y ) | X ∩ Y | | T |
lif t(X → Y ) = = ∗
support(Y ) |X| |Y |
On représente la corrélation entre deux items d’un même ensemble par un lien entre eux, c’est la
couleur du lien qui permet d’évaluer la corrélation. On utilise le lift pour cette évaluation, étant
donné que le lift est une mesure non probabiliste pouvant donc prendre des valeurs supérieures à
1, on se ramène à l’inverse du lift, on prend donc également la mesure relationLift, déjà définie
en 4.2.
1
relationLif t(X → Y ) =
lif t(X → Y )
Le support
Le support a déjà été défini à l’équation 2.4 de la section 2.2.
|A∩B |
support(A → B) = p(AB) =
|T |
La confiance
La confiance a déjà été définie à l’équation 2.5 de la section 2.2.
p(XY ) | X ∩ Y | nXY
conf iance(X → Y ) = = =
p(X) |X| nX
52
La confiance permet ici de mesurer la corrélation entre un item particulier de la prémisse, et
un item particulier de la conclusion.
(A, B, C) → (E, F, G)
|A∩E|
correlation(A, E) = conf iance(A → E) = |A|
(4.29)
|A∩F |
correlation(A, F ) = conf iance(A → F ) = |A|
etc.
On utilise également la confiance comme mesure d’intérêt générale de la règle.
– RelationLift (4.2), corrélation entre deux items d’un même ensemble [0; +∞] Si cette
valeur est supérieure à 1, cela signifie que le lift était inférieur à 1, la corrélation est donc
insignifiante. On fait en sorte que la transcription respecte cela. Graphiquement, un lien est
représenté entre les sphères des ensembles, deux à deux, et c’est la couleur de ce lien qui
renseigne sur l’importance de la corrélation. On transcrit de la manière suivante :
– Confiance (4.29), corrélation entre chaque item de prémisse et chaque item de conclu-
sion [0; 1] Plus la valeur est élevée, plus l’item de prémisse et l’item de conclusion sont
corrélés. Graphiquement, un lien est représenté entre la sphère de l’item de prémisse, et
la sphère de l’item de conclusion. C’est cette fois l’épaisseur de ce lien qui renseigne sur
l’importance de la corrélation. On transcrit de la manière suivante :
– Epaisseur = (conf iance∗2)+0.2, les liens les plus épais représenteront les meilleures
corrélations. On fait ici en sorte que les corrélations nulles soient néanmoins un mini-
mum visible.
– Support (2.4), implication générale d’un item [0; 1] Plus la valeur est élevée, plus l’item
est présent dans l’échantillon. Graphiquement, c’est le rayon de la sphère représentant
l’item qui renseigne sur l’implication de l’item. On transcrit de la manière suivante :
53
– Rayonmaximal = 4.0, le calcul est fait relativement au maximum de support constaté
dans l’ensemble des items, les sphères les plus grosses représenteront les items les plus
impliqués. Le calcul relatif permet, comme dans la métaphore 1, d’éviter les problèmes
d’uniformisation graphique.
– Confiance générale de la règle (2.5) [0; 1] Plus cette valeur est élevée, plus la règle est
"valide". Graphiquement, c’est un lien entre la zone des sphères de la prémisse et la zone
des sphères de la conclusion qui représente cette mesure. La longueur du lien renseigne
sur son importance. On transcrit de la manière suivante :
A B C D
1 1 1 1
1 0 0 1
0 0 1 1
0 1 1 0
0 0 1 0
Dans cette exemple nous n’allons pas extraire les règles d’association car dans notre outil de
développement, nous nous occupons seulement de l’affichage des règles. Ici le tableau est donné
à titre d’information, et afin d’avoir plus de précision.
Nous allons choisir ici la règle à présenter
(A, B → C, D). Dans ce cas, nous allons calculer les trois mesures : lift , support et confiance.
Modélisation La modélisation des données sera sous format XML comme ça a été expliqué
auparavant. Nous nous possédons seulement les effectifs des prédicats.
Effectifs
N ombre(A) = 2
N ombre(B) = 2
54
N ombre(C) = 4
N ombre(D) = 3
Support
support(A) : 2/5
support(B) : 2/5
support(C) : 4/5
support(D) : 3/5
Confiance
Lift
conf iance(A→B)
lif t(A → B) = support(B)
= 3/2
conf iance(C→D)
lif t(C → D) = support(D)
=1
Avec ces données nous pouvons créer un modèle complet de la métaphore 2, dans le cas ou
on peut avoir plusieurs items les données seront beaucoup plus importante en terme de quantité.
1. Eviter les problèmes de présentation quand les supports ont un très grand écart et donc les
tailles de sphères aussi
2. Résoudre la problématique de la représentation des sphères (notamment la taille) : On
prend le support ou plutôt le gain d’information ?
3. La direction de la règle n’est pas intuitive
4. Enfin, pourquoi ne pas représenter plusieurs mesures d’intérêt (pour l’axe principal) dans
une même métaphore ?
55
L’idée de cette métaphore qui va essayer de réduire les problématiques listées sera la sui-
vante : Imaginons que l’implication de l’information soit un liquide/lumière circulant de la pré-
misse à la conclusion.
– Les items sont des sphères remplies avec le liquide/lumière à un certain niveau selon le
support de l’item
– Les sphères ont la même taille pour éviter les problèmes de la gestion d’espace en cas de
très grandes différences
– Le gain d’information est représenté pas la vitesse de rotation de cette sphère
– La direction de la règle est représentée pas le sens de circulation du liquide/lumière
On peut aller aussi loin, la vitesse de circulation du liquide/lumière sera représentée par une
mesure d’intérêt de meilleure qualité et la largeur ou l’épaisseur des liens (canalisation) pourra
être représentée par la confiance. La figure 4.8 tente d’illustrer cette métaphore.
Cette métaphore nous permet alors de connaitre d’autres règles cachées telles que A → C.
Remarque : La représentation de cette métaphore nécessite de nombreux paramètres supplémen-
taires, dus à la complexités de ses éléments (lumière, liquide, vitesse notamment). Le temps de
calcul nécessaire à la représentation d’un règle via cette métaphore sera donc supérieur à celui
nécessaire via une autre métaphore, d’où la nécessité de s’interroger sur l’opportunité de cette
métaphore en terme d’optimisation du programme.
56
Chapitre 5
Développement
Cette partie présente l’organisation générale du logiciel, elle est subdivisée en deux parties
relativement distinctes :
Le logiciel a été développé sous l’IDE Code : :Blocks, en langage C++. L’affichage des règles
d’association en 3D a été possible grâce à la librairie GLUT (OpenGL Utility Toolkit), qui offre
de nombreuses méthodes/routines simplifiant le développement graphique 3D. Le diagramme
de classes général est présenté en figure 5.1. L’image a été coupée pour être visible, certaines
dépendances secondaires ne sont donc pas visibles.
57
5.1 Modèle de données
5.1.1 Importation des données
Connaissant la structure des données qui seront fournies en entrées au logiciel (format PMML
voir 4.1.3), il convenait dans un premier temps d’organiser l’importation et le stockage de ces
informations dans la mémoire. Ce rôle est joué par les fichiers structure.h et structure.cpp, on
commence par organiser une structure hiérarchique de stockage :
item
– Nom de l’item
– Identifiant de l’item
– item suivant
itemset
– Effectif de l’itemset
– Support de l’itemset
– Identifiant de l’itemset
– Nombre d’items composant l’itemset
– Liste des identifiant des items composant l’itemset
– Itemset suivant
règle
– Identifiant de l’itemset de conclusion
– Identifiant de l’itemset de prémisse
– Identifiant de la règle
– Lift de la règle
– Support de la règle
– Confiance de la règle
– Règle suivante
échantillon
– Nombre d’enregistrements
– Premier item
– Premier itemset
– Première règle
On entreprend alors d’analyser linéairement le fichier XML d’entrée, de repérer les balises,
et de stocker le contenu en mémoire avant toute manipulation. On utilise pour cela un analyseur
("parser" en anglais) spécialisé, il en existe de nombreux disponibles sur internet, développés par
des passionnés ou des entreprises. On peut citer expat, CMarkup, Xerces-C++ XML Parser,
TinyXml etc. On choisi TinyXml pour sa bonne réputation notamment concernant la facilité
d’implémentation.
58
Une fois l’analyseur configuré pour reconnaitre les balises XML du format PMML, le logiciel
réalise correctement l’importation et le stockage des valeurs dans la mémoire. On peut alors
passer à l’étape suivante : La construction des structures de données utilisées lors de l’affichage.
– Classe RegleClasse Cette classe représente une règle possédant toutes les informations
nécessaires à son affichage
– Classe UniqueRegles Cette classe n’est invoquée qu’une seule fois dans le programme
et contient les informations générales sur l’échantillon des données, une liste de règles
(RegleClasse) ainsi qu’un lien vers les données précédemment stockées en mémoire. C’est
cette classe qui calcule les valeurs numériques nécessaires à l’affichage des règles, et qui
organise leurs stockage.
Ces deux classes sont présentes respectivement dans les fichiers RegleClasse.h RegleClasse.cpp
et UniqueRegles.h UniqueRegles.cpp.
59
L’avantage de ces structures est d’être exhaustives, posséder toutes ces informations permet-
tra de passer aisément d’une métaphore à une autre pendant l’affichage. Cela permet également
de réaliser tous les calculs numériques en amont, et ainsi d’éviter de devoir en exécuter pen-
dant l’affichage, moment où beaucoup de puissance calculatoire est déjà utilisée. Rappel : Les
présentations des métaphores 1 et 2 sont faites aux sections 4.2.1 et 4.3.1.
Une fois définie l’organisation, la transformation des données et le stockage peut commencer.
Les méthodes appelées pour calculer les mesures accompagnant les règles sont également
présentes dans la classe UniqueRegles. Une fois l’algorithme 1 terminé, les règles sont prêtes à
être affichées, on peut maintenant se préoccuper de la partie graphismes.
60
Algorithme 1 Algorithme de transformation des données importées 1/2
1: tant que On trouve une règle dans les données importées faire
2: Extraction du nombre d’items de la prémisse
3: Extraction du nombre d’items de la conclusion
4: Calcul du nombre total d’items
5: Création d’une nouvelle règle (RegleClasse)
6: Extraction de la confiance de la règle depuis les données importées
7: Ajout dans la règle, en tant que mesure d’intérêt générale des deux métaphores
8: pour Chaque item de prémisse faire
9: Extraction du nom de l’item
10: Ajout du nom de l’item actuel dans la règle
11: Calcul de l’implication de l’item en particulier selon la métaphore 1
12: Ajout dans la règle
13: Calcul de l’implication de l’item en particulier selon la métaphore 2
14: Ajout dans la règle
15: Calcul de l’implication de l’item sur l’autre ensemble selon la métaphore 2
16: Ajout dans la règle
17: fin pour
18: pour Chaque item de conclusion faire
19: Extraction du nom de l’item
20: Ajout du nom de l’item actuel dans la règle
21: Calcul de l’implication de l’item en particulier selon la métaphore 1
22: Ajout dans la règle
23: Calcul de l’implication de l’item en particulier selon la métaphore 2
24: Ajout dans la règle
25: Calcul de l’implication de l’item sur l’autre ensemble selon la métaphore 2
26: Ajout dans la règle
27: fin pour
28: ...............................
29: APPLICATION DE L ALGORITHME 2
30: ...............................
31: Ajout de la règle à la liste des règles prêtes à être affichées
32: fin tant que
61
Algorithme 2 Algorithme de transformation des données importées 2/2
1: pour Chaque item de prémisse faire
2: pour Chaque item de prémisse faire
3: Calcul de la relation entre les deux items selon les métaphore 1 et 2
4: Ajout dans la règle
5: fin pour
6: fin pour
7: pour Chaque item de conclusion faire
8: pour Chaque item de conclusion faire
9: Calcul de la relation entre les deux items selon les métaphore 1 et 2
10: Ajout dans la règle
11: fin pour
12: fin pour
13: pour Chaque item de prémisse faire
14: pour Chaque item de conclusion faire
15: Calcul de la relation entre chaque item de prémisse et chaque item de conclusion selon
la métaphore 2
16: Ajout dans la règle
17: fin pour
18: fin pour
GLUT (OpenGL Utility Toolkit) est une surcouche d’OpenGL fournissant de nouvelles
variables/fonctions permettant d’en faciliter l’utilisation. La librairie met en oeuvre un simple
fenêtrage avec une interface de programmation (API) pour OpenGL. GLUT n’est plus maintenu
par son créateur Mark J. Kilgard depuis 1998, mais est encore très utilisé, notamment pour créer
des programmes simples, ou de démonstrations.
62
5.1).
Le programme extrait alors les règles une par une, et les affiche au fur et à mesure. L’affichage
se passe dans une arène, qui est un espace constitué d’un arrière-plan clair et d’une structure
circulaire. Le programme fait en sorte de se placer sur un plan, et d’afficher autant de règles en
longueur qu’en largeur. L’affichage se fait via des centres de gravité, selon l’algorithme 3
Les sphères représentant les items de prémisse font parties d’une "zone", définie par un centre
de gravité. Les sphères viennent d’agglutiner autour de ce centre, selon une structure cubique
pouvant accueillir jusqu’a treize items. Les dimensions de cette structure sont calculées de façon
à ce que deux sphères ne rentrent jamais en contact.
Les sphères représentant les items de conclusion font également partie d’une zone, dont on
définit le centre de gravité d’après la position du centre de gravité de la zone des sphères de
prémisse. On s’assure de laisser ainsi assez d’espace entre la zone des sphères de prémisse et
la zone des sphères de conclusion pour afficher un lien allant de la prémisse à la conclusion, et
symbolisant la valeur de la mesure d’intérêt générale de la règle. Le résultat est visible figure 5.3.
63
F IGURE 5.3 – Représentation d’une règle dans la métaphore 1
Les sphères de prémisse et de conclusion sont également placées dans des "zones", selon le
même système que dans la métaphore 1.
64
– HandleReshape() : Fonction appelée à chaque fois que l’utilisateur modifie la géométrie
de la fenêtre, et déforme les proportions hauteur/largeur
– HandleIdle() : Fonction exécutée en permanence
– CreateEnvironment() : Fonction appelée pour initialiser la machine à états OpenGL
– MakeGeometry() : Génère tout ce qui est nécessaire à la géométrie
– MakeLighting() : Gère tout ce qui est nécessaire à la lumière
– HandleKeyboard() : Intercepte les évènements claviers de l’utilisateur
– DiscretiserXXXX() : Fonctions servant à la transcription graphique
– AfficherXXXX() : Fonctions servant à l’affichage des règles selon l’une ou l’autre méta-
phore
– placerXspheresMetaX() : Fonctions servant à l’affichage de sphères selon l’une ou l’autre
métaphore
– placerLiensXXXX() : Placement des liens inter-sphères selon l’une ou l’autre métaphore
La figure 5.5 présente le diagramme des classes de l’affichage graphique des règles d’asso-
ciation.
65
Chapitre 6
Conclusion
6.2 Enseignements
Les enseignements que nous avons pu tirer de ce travail sont les suivants :
– Une plus grande appréhension de la dimension du domaine du data mining
– Une plus grande compréhension de la science particulière que constituent les règles d’as-
sociation
– Une bonne visualisation de l’état de l’art, et des solutions qui existent déjà pour réaliser de
la fouille graphique de données
– Une fois encore, la constatation de la difficulté que peut constituer le formalisme des pro-
blèmes métier, et les spécifications techniques qui en découlent
– Une première expérience en développement graphique 3D
– Une approche de la gestion de projet de développement
66
6.3 Perspectives de recherche
Le projet est utilisable en l’état, mais son développement ne demande qu’a être poursuivi, il
serait donc bon de le mettre gratuitement à disposition sur internet. Ainsi, il pourrait être étudié ou
repris par une équipe de chercheurs ou de passionnés, s’intéressant à la représentation graphique
des données.
67
Annexe A
Suivi
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Bibliographie
[AIS93] Rakesh Agrawal, Tomasz Imielinski, and Arun Swami. Mining association rules
between sets of items in large databases. 1993.
[AS94] Rakesh Agrawal and Ramakrishnan Srikant. Fast algorithms for mining association
rules in large databases. 1994.
[ASAVK07] Imielinski-T. Agrawal, R., O. Fekete J.D. Furnas G.W . Harisson B.L. Swami A.N,
Couturier, Han J. Vicente, K.J., and Mephu-Nguifo E. Lamping J. Rao R. Pirolli
P.Le Grand B.Mackinlay J.D. Robertson G.G. Card S.K Rouillard J.Shneiderman
B.Vernier F. et Nigay L. KamberFekete, J.D. Représentations multiples d’une
grande quantité d’information. 2007.
[BGB03] Julien Blanchard, Fabrice Guillet, and Henri Briand. A user-driven and quality-
oriented visualization for mining association rules. 2003.
[Bla05] Julien Blanchard. Un système de visualisation pour l’extraction, l’évaluation, et
l’exploration interactives des règles d’association. PhD thesis, 2005.
[BMS97] Sergey Brin, Rajeev Motwani, and Craig Silverstein. Beyond market baskets :
generalizing association rules to correlations. 1997.
[CCF08] Martine Cadot, Pascal Cuxac, and Claire François. Aide à l’interprétation des
règles d’association composées. 2008.
[Cou05] Olivier Couturier. Recherche anthropocentrée de règles d’association pour l’aide à
la décision, 2005.
[Dug04] Mathieu Dugré. Memoire : Conception et rÉalisation d’un entrepÔt de donnÉes :
IntÉgration À un systÈme existant et Étape nÉcessaire vers le forage de donnÉes.
2004.
[Fio06] Céline Fiot. Quelques techniques de fouille de données, support de cours, 2006.
[Fre99a] Alex A. Freitas. On objective measures of rule surprisingness. 1999.
[Fre99b] Alex A. Freitas. On rule interestingness measures. 1999.
[Gui08a] Fabrice Guillet. Introduction à l’extraction de connaissances dans les données,
support de cours, 2008.
[Gui08b] Fabrice Guillet. Mining association rules, support de cours, 2008.
[HK01] Jiawei Han and Micheline Kamber. Data Mining : Concepts and Techniques. Mor-
gan Kaufmarm Publishers Inc, 2001.
82
[HLSL01] Farhad Hussain, Huan Liu, Einoshin Suzuki, and Hongjun Lu. Exception rule
mining with a relative interestingness measure. 2001.
[Jou] Laetitia Jourdan. Page web : Association rules viewer.
[Lar05] Daniel T. Larose. Discovering knowledge in data : an introduction to data mining.
John Wiley and Sons Inc, 2005.
[LT03] Stéphane Lallich and Olivier Teytaud. Evaluation et validation de l’intérêt des
règles d’association. 2003.
[Pre09] Philippe Preux. Fouille de données, notes de cours, 2009.
[Rak08] Ricco Rakotomalala. "market data analysis" ou l’analyse du panier de la ménagère.
2008.
[Wik] Wikipedia : Exploration de données. [URL].
83
Table des figures
84