You are on page 1of 84

É COLE POLYTECHNIQUE DE L’ UNIVERSITÉ DE N ANTES

D ÉPARTEMENT D ’ INFORMATIQUE

R APPORT DE RECHERCHE ET DÉVELOPPEMENT

Rapport Final
Fouille visuelle de données à l’aide de
métaphores 3D en réalité virtuelle

Romain BRUNEAU et Mohamed Amine


HALLAM

Version du 15 Janvier 2009


encadré par Fabrice GUILLET et Zohra BENSAID
— Équipe d’accueil —

L ABORATOIRE D ’I NFORMATIQUE DE NANTES -ATLANTIQUE


Rapport Final

Fouille visuelle de données à l’aide de métaphores 3D en


réalité virtuelle

Romain BRUNEAU et Mohamed Amine HALLAM

2
Résumé

Ce document présente le travail effectué dans le cadre du projet de recherche et développement


du binôme
– Romain BRUNEAU (ID5)
– Mohamed Amine HALLAM (ID5)

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

3 Exemple d’outil de fouille visuelle de données en réalité virtuelle : ARVIS 24

4 Proposition de métaphores de représentation 3D 26


4.1 Modèle de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1 Les informations nécessaires à la visualisation . . . . . . . . . . . . . . 26
4.1.2 Le modèle de données initial . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.3 Le modèle PMML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Métaphore 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.2 Mesures d’intérêt utilisées . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.3 Transcription graphique . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.4 Exemples applicatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Métaphore 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2 Mesures d’intérêt utilisées . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.3 Transcription graphique . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.4 Exemples applicatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

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

Le présent rapport constitue le rendu intermédiaire du projet de recherche et développement


de 5ème année, à l’école Polytech’Nantes (département informatique).

Le binôme concerné est composé de :


– Romain BRUNEAU (ID5)
– Mohamed Amine HALLAM (ID5)

Ce projet a été encadré par les enseignants :


– Fabrice GUILLET (Enseignant chercheur)
– Zohra BEN SAID (Enseignant chercheur)

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.

1.1 Présentation de la problématique


L’intitulé du sujet est le suivant :

Fouille visuelle de données à l’aide de métaphores 3D en réalité virtuelle.

L’intitulé fait référence au processus de fouille de données, qui consiste en la découverte de


connaissances dans les données. L’objectif du projet est de trouver un système de représentation
de connaissances (une "métaphore") dans un espace 3D, et de développer une solution logicielle
basée sur ce système. Les connaissances devant être représentées ici sont des règles d’association,
la représentation graphique devra permettre de les évaluer, grâce à des mesures les concernant,
traduites graphiquement. La section 2.2 revient sur le processus de fouille de données, et sur le
type caractéristique de connaissance que constituent les règles d’association.

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.

En complément de l’évaluation subjective des connaissances, se pose la question du nombre.


En effet, les algorithmes classiques de fouille de données extraient la plupart du temps de grandes
quantités de connaissances, difficiles à interpréter. Il existe alors plusieurs solutions pour faire
une sélection, telle que l’introduction de seuils élaguant automatiquement les connaissances les
moins "performantes". On peut aussi, et c’est l’objet de cette réflexion, se tourner naturellement
vers une solution de visualisation, qui permet par essence de visualiser rapidement des informa-
tions, grâce à des métaphores de représentation (couleurs, longueurs, volumes etc.). Ce constat
découle bien entendu du fait que l’esprit humain est capable de traiter plus rapidement des don-
nées visuelles et métaphoriques. Bien entendu, la présence d’un analyste est également requise.

Le dessin, la visualisation ou encore le croquis permettent souvent de mieux visualiser un


problème, et de capter des informations qui n’étaient pas évidentes de prime abord. Les premiers
systèmes de visualisation faisaient appels à deux dimensions, on utilisait alors des longueurs,
des largeurs, des aires, etc. L’ajout de couleurs et de formes 2D spécifiques permettait déjà de
bonnes évaluations. Le recours à trois dimensions était logique depuis le début des systèmes de
visualisation, mais alors complexe à mettre en oeuvre, l’évolution de la technique a démocratisé
son accès. Ce recours est justifié par le fait que la 3D permet de modéliser des éléments plus
représentatifs grâce à la perspective, les volumes, sphères, cubes etc. sont bien "compris" par
l’humain, et apportent plus que la 2D. On a accès également à un espace beaucoup plus important,
dans lequel il est aisé de naviguer, on peut donc représenter beaucoup plus d’informations, en
termes de nombre. Egalement, le recours à la 3D permet d’envisager un système d’interaction

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).

Le but du projet sera donc de créer un système de visualisation 3D de règles d’associations,


permettant à un analyste de se rendre compte de visu de la pertinence ou de l’inadéquation d’une
règle pour répondre au problème posé. La 3D permettra de représenter un grand nombre d’infor-
mations via des métaphores graphiques, elle offre également un bon confort d’utilisation, mais
est a fortiori plus délicate que la 2D à mettre en oeuvre.

Ce système de visualisation sera implémenté en C++/OpenGL une fois parfaitement défini.

1.2 Travail réalisé


Le travail à réaliser au commencement du projet était le suivant :

– 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.

– Etablir le modèle de données associé aux règles d’association et concevoir une/des


métaphore/s 3D associée/s Il s’agit ici de caractériser les règles d’association qu’il faudra
visualiser, cette étape passe par une sélection des informations les définissant, notamment
les mesures d’intérêt.

– 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.

– Etendre les fonctionnalités d’ARVIS Le logiciel ARVIS (Association Rules Visualiza-


tion) est développé par le LINA (Laboratoire d’Informatique de Nantes Atlantique) et per-
met déjà une visualisation de règles d’association. Le logiciel que nous aurons à développer
devra exploiter les pleines possibilités de l’OpenGL, là ou l’actuel ARVis est développé
en java3D. Egalement, et c’est un élément majeur, ARVIS ne permet pas une visualisation
des différentes composantes (items) des ensembles prémisse et conclusion, le nouvel outil
devra le permettre.

– 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 2 présente l’état de l’art en matière de visualisation de règles d’association.


Le chapitre revient tout d’abord sur le processus de fouille de données visant à découvrir des
connaissances, il présente ensuite le type particulier de connaissance que constituent les règles
d’association. Enfin, le chapitre expose l’intérêt de la visualisation dans un processus de fouille
de règles d’association, et s’intéresse aux techniques déjà existantes et implémentées. On cherche
bien entendu à justifier l’élaboration d’un nouvel outil.

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.

Le chapitre 5 décrit l’organisation de la solution logicielle développée, et tente d’en expliquer


le fonctionnement de manière abstraite.

11
Chapitre 2

Etat de l’art

2.1 Le processus de fouille de données (data mining)


La fouille de données est la science extrêmement vaste, qui consiste à analyser les données,
sous différents angles, via différents outils, dans le but d’en extraire des connaissances utiles.
Plusieurs appellations sont couramment employées pour désigner cette science (Lire [HK01],
intro p5) :

– Data Mining : "Fouille" de données


– Knowledge Data Discovery : Découverte de connaissances dans les données
– Knowledge mining from data : Fouille de connaissances dans les données
– Knowledge extraction : Extraction de connaissances
– Data archeology : Archéologie dans les données
– etc.

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

– "Extraction d’informations originales, auparavant inconnues, potentiellement utiles à partir


de données" (Frawley et Piateski-Shapiro)
– "Découverte de nouvelles corrélations, tendances et modèles par le tamisage d’un large
volume de données" (John Page)
– "Processus d’aide à la décision où les utilisateurs cherchent des modèles d’interprétation
dans les données" (Kamran Parsaye)
– "Torturer l’information possible jusqu’à ce qu’elle avoue" (Dimitris Chorafas)
La dernière définition peut sembler humoristique, mais n’est néanmoins pas très éloigné de
la réalité, car le processus de découverte de connaissances fait appel à un très large panel de
techniques. Ce processus est aujourd’hui extrêmement logique, organisé, normé. Les auteurs,
chercheurs et entreprises spécialisés dans ce processus lui reconnaissent consensuellement plu-
sieurs étapes (voir notamment les points d’accord entre [HK01] chap1p6 et [Lar05] chap1p6) :

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

F IGURE 2.2 – Le processus de fouille de données [Gui08a] p8

Il existe de nombreuses techniques de data mining : Arbres de décision, réseaux de neurones,


clustering k-mean, CAH, ACP, règles d’association etc. On peut classer ces techniques en trois
catégories principales (lire en priorité [Lar05], et également [FIO06] p7-8-9 et [Gui08a] p9) :
– Apprentissage supervisé On cherche à expliquer une classification déjà existante des en-
registrements selon un attribut.
– Apprentissage non-supervisé On cherche à découvrir une classification des enregistre-
ments, il s’agit de discriminer les individus pour les regrouper en entités distinctes.
– Recherche d’associations On cherche à trouver des règles régissant les enregistrements,
il s’agit de trouver des correspondances de type : "Une certaine valeur de tel et tel attribut
entraine une certaine valeur de tel autre".
C’est la dernière catégorie de la recherche d’associations, et plus particulièrement la subdi-
vision des règles d’association qui va nous intéresser.

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.).

F IGURE 2.3 – Exemple d’enregistrements binarisés, [Gui08a] p8

Les règles d’association sont de la forme :

(A, B) → (C, D) (2.1)

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 :

(outlook = sunny, temperature = hot) → (humidity = high) (2.2)

15
Un autre exemple pourrait être :

(achat = couches, achat = biere) → (achat = poulet) (2.3)

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.

2.2.2 Les mesures d’intérêt


Une règle d’association, quelle que soit la manière dont on la découvre, peut être évaluée
à partir d’un échantillon de données. On peut alors élaborer des raisonnements de type : "Si la
règle n’est pas vérifiée un nombre suffisant de fois, elle n’est pas utile !", ou "Si l’échantillon est
trop sommaire, la règle n’a pas de valeur", ou bien encore "Si il existe trop de contre-exemples,
la règle n’est pas valide" etc. etc.

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 :

– Mesures de généralité Une mesure de généralité permet de se rendre compte de la base


sur laquelle est définie la règle. Typiquement, si l’échantillon où il est possible d’évaluer
la règle est trop faible, la règle n’est pas assez générale.

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.

F IGURE 2.4 – Liste non-exhaustive des mesures d’intérêt existantes, [LT03] p7

On prend maintenant la règle suivante : (outlook = sunny) → (temperature = hot)


appliquée à l’échantillon 2.3, et on l’évalue grâce à différentes mesures d’intérêt. Les mesures
suivantes sont le fruit des travaux [AIS93] (support et confiance) et [BMS97] (lift).

Exemple : Le support (généralité)

|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

Exemple : La confiance (validité)


p(AB) |A∩B|
conf iance(A → B) = p(A) = |A| (2.5)

Il s’agit ici du rapport du nombre d’enregistrements où la prémisse et la conclusion sont


vérifiées, sur le nombre d’enregistrements ou seule la prémisse est vérifiée. Cette mesure ne
tient pas compte du nombre total d’enregistrements, elle se préoccupe uniquement de ceux où la
prémisse est bien présente.

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

Exemple : Le lift (fiabilité)


conf iance(A→B) |A∩B| |T |
lif t(A → B) = support(B) = |A| ∗ |B| (2.6)
Il s’agit ici du rapport du nombre d’enregistrements vérifiant la prémisse et la conclusion, sur
le produit du nombre d’enregistrements vérifiant la prémisse, par le nombre de ceux vérifiant la
conclusion. Contrairement aux deux mesures d’intérêt précédentes, où le caractère probabiliste
est avéré, cette mesure peut être interprétée comme une "côte" de vraisemblance, où par l’"effet
levier" de la prémisse sur la conclusion. Le lift peut être interprété si il est supérieur à 1.

Dans l’échantillon 2.3, la confiance de la règle est de 25 , et le support de (temperature = hot)


4
est de 14

On peut donc affirmer : lif t[(outlook = sunny) → (temperature = hot)] = 52 ∗ 14


4
28
= 20 =
7
5
Le résultat est légèrement supérieur à 1, on peut en conclure qu’un beau temps a un certain
effet sur une température chaude.

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.

Les critères subjectifs peuvent se regrouper en quatre catégories ([HLSL01]) :

– Sens commun, fiabilité subjective (Cheveuxbruns) → (Avoiruncerveau), cette règle


n’est absolument pas fiable
– Utilité pour le problème posé ex : (AchatCD) → (AchatDV D)
différent de (AchatCD, AchatDV D, AchatClef U SB) → (AchatRobe, Achatcouches−
culottes), on ne tirera pas les mêmes enseignements des deux règles, hiérarchie des utilités
– Nouveauté : La règle était inconnue
– Surprise : La règle n’était pas attendue

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).

Le chapitre suivant 3 analyse le logiciel ARVIS (Association Rules Visualization) développé


par le LINA (Laboratoire d’Informatique de Nantes Atlantique). Ce logiciel implémente juste-
ment la visualisation 3D de règles d’association.

2.3 La fouille visuelle de données


2.3.1 La fouille visuelle de données en général
Ce chapitre présente l’état de l’art des techniques de visualisation en fouille de données.

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.

F IGURE 2.5 – Outil aiSee, [ASAVK07] p22

2.3.2 La fouille visuelle de règles d’association


On s’intéresse ici à la fouille visuelle de règles d’association, quelques outils existent pour
cette usage bien spécifique. Certains outils permettent une visualisation via deux dimensions,
d’autre via trois, on présente ici les principaux.

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

F IGURE 2.7 – Outil Infovis, [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

Exemple d’outil de fouille visuelle de


données en réalité virtuelle : ARVIS

ARVis (Association Rule Visualization) est un outil servant à l’exploration interactive de


règles d’association. ARVis implémente une méthodologie au moyen d’une représentation 3D,
et repose sur un algorithme spécifique d’extraction sous contraintes permettant de générer les
règles interactivement, au fur et à mesure de la navigation de l’utilisateur. Ainsi, en explorant les
règles, l’utilisateur dirige à la fois l’extraction et le post-traitement des connaissances. L’interface
3D de ARVis est basée sur le prototype ARVis (Blanchard et al., 2003). Chaque sous-ensemble
de règles est représenté dans un monde virtuel. Les règles sont représentées par une sphère ju-
chée sur un cône. Afin de réduire les problèmes d’occultations, les objets 3D sont disposés sur
une arène transparente (une demi-coupole en "verre").

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.

Propriétés graphiques dans la représentation :


– La position des objets (hauteur) dans l’arène représente l’intensité d’implication
– La surface visible de la sphère représente le support
– La hauteur du cône représente la confiance
– La couleur de l’objet est utilisée de façon redondante pour représenter une moyenne pon-
dérée des trois mesures, ce qui donne une idée synthétique de la qualité de la règle (les
poids sont fixés par l’utilisateur)

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.

4.1 Modèle de données


On présente tout d’abord le modèle de données, c’est à dire les informations à fournir au
logiciel pour qu’il puisse représenter au mieux les règles d’association. Certaines de ces infor-
mations sont utilisées pour évaluer les règles d’association, et en faire ensuite une représentation
plus riche et détaillée.

4.1.1 Les informations nécessaires à la visualisation


Il a été décidé que c’est le logiciel lui-même qui s’occuperait du calcul des informations
devant être représentées pour chaque règle, à partir des informations fournies dans le modèle
de données. Le logiciel développé ne prend donc pas d’échantillons en entrée, mais une base
de règles, accompagnée d’informations organisées dans un modèle de données. Le modèle de
données doit donc fournir au minimum pour chaque règle :
1. L’itemset (ensemble d’items) de prémisse, avec la cardinalité de l’ensemble
2. L’itemset de conclusion, avec la cardinalité de l’ensemble
3. Les effectifs des items de la prémisse (1-uplets,2-uplets... p-uplets)
4. Les effectifs des items de la conclusion (1-uplets,2-uplets... q-uplets)
5. Les effectifs des relations inter-ensembles, avec au minimum un item de la prémisse et un
de la conclusion (2-uplets... (p+q)-uplets)

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.

1. L’itemset de prémisse, avec la cardinalité de l’ensemble Le modèle doit donner les


noms des attributs de la prémisse, et la cardinalité de la prémisse, cela revient à donner :
X = {X1 , X2 , ..., Xp }, | X |= p
2. L’itemset de conclusion, avec la cardinalité de l’ensemble Le modèle donne les mêmes
informations pour la conclusion : Y = {Y1 , Y2 , ..., Yp }, | Y |= q
3. Les effectifs des items de la prémisse Tous les effectifs des attributs de la prémisse
doivent être fournis, ainsi que tous les effectifs des ensembles i-uplet qui pourraient être
exploités par le logiciel. (voir tableau 3)

Tableau des effectifs à fournir pour la prémisse


Ordre (Nombre d’attributs) Exemple Cardinalité
1 n(X1 ) 1
2 n(X1 )n(X2 )n(X1 , X2 ) 3
n(X1 )n(X2 )n(X3 )n(X1 , X2 )
3 7
n(X2 , X3 )n(X1 , X3 )n(X1 , X2 , X3 )
... ... ...
p
p ... 2 −1
F IGURE 4.1 – Tableau des effectifs à fournir pour la prémisse

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.

Tableau des effectifs à fournir pour les relations inter-ensembles


Ordre (Nombre d’attributs) Exemple Cardinalité
p = 1, q = 1, p + q = 2 n(X1 , Y1 ) 1
p = 2, q = 1, p + q = 3 n(X1 , Y1 ), n(X2 , Y1 )n(X1 , X2 , Y1 ) 3
n(X1 , Y1 )n(X1 , Y2 )n(X2 , Y1 )n(X2 , Y2 )
p = 2, q = 2, p + q = 4 n(X1 , Y1 , Y2 )n(X2 , Y1 , Y2 )n(X1 , X2 , Y1 ) 7
n(X1 , X2 , Y2 )n(X1 , X2 , Y1 , Y2 )
... ... ...
p+q−2
p+q ... 3
F IGURE 4.3 – Tableau des effectifs à fournir pour la conclusion

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.

6. Le nombre d’enregistrements sur lequel on travaille Le nombre d’enregistrements | T |


est indispensable pour évaluer la règle sous différents aspects, on le fourni donc.

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).

4.1.2 Le modèle de données initial


Pour fournir au logiciel les informations précédemment définies, il faut bien entendu pas-
ser par un fichier. On choisit le XML pour sa facilité d’utilisation, et les nombreuses solutions
logicielles disponibles pour analyser ce type de fichier. Il convient de proposer une syntaxe de
représentation permettant d’inclure toutes les informations nécessaires, on définit la structure des
fichiers XML selon la DTD (Document Type Definition) suivante :
 
1 <?xml version="1.0" encoding="iso-8859-15" ?>
2 <!ELEMENT REGLES (ECHANTILLON*)>
3 <!ELEMENT ECHANTILLON (ITEMS,EFFECTIFS,EREGLES)>

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

13 <!ATTLIST ECHANTILLON nombreEnregistrements CDATA #REQUIRED>


14 <!ATTLIST ITEM id ID #REQUIRED>
15 <!ATTLIST EFFECTIF valeur CDATA #REQUIRED>
16 <!ATTLIST REFEFF refitem IDREF #REQUIRED>
17 <!ATTLIST REF categorie CDATA #REQUIRED refitem IDREF #REQUIRED>
 

Exemple applicatif, on fournit au logiciel le fichier suivant :


 
1 <?xml version="1.0" encoding="iso-8859-15"?>
2 <!DOCTYPE INFO SYSTEM "DTDmeta1.dtd">
3

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>
 

4.1.3 Le modèle PMML


Dans un soucis de normalisation et d’interopérabilité, nous avons dû changer de modèle de
données en cours de projet, et nous sommes alors tournés vers le format PMML (Predictive Mo-
del Markup Language). Il s’agit également d’une syntaxe XML, conçue pour décrire les modèles
statistiques et de traitement des données au sein des applications décisionnelles (source : journal-
dunet.com). Cette représentation est portée par un consortium d’éditeurs logiciels (DMG : Data
Mining Group), soucieux de dépasser les clivages propriétaires concernant la formalisation des
données.

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>
 

Exemple applicatif, on fournit au logiciel le fichier suivant :


 
1 <?xml version="1.0" encoding="UTF-8"?>
2

3 <PMML version="3.0" xmlns="http://www.dmg.org/PMML-3_0" xmlns:xsi="


http://www.w3.org/2001/XMLSchema-instance">
4 <Header copyright="">
5 <Application name="Test" version="1.0"/>
6 <Annotation>Test PMML</Annotation>

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.

3. Représentation de l’implication d’un item sur l’autre ensemble On se demande ici


quelle est l’implication de cet item pour arriver à trouver une telle conclusion, et a contra-
rio, quelle est l’implication de cet item dans la découverte d’une telle prémisse ?

On représente l’implication d’un item par la couleur de la sphère le modélisant, on adopte


un code de couleur variant du vert (grande implication) au rouge (faible implication).

On utilise la confiance pour représenter une telle implication, en se posant la question


de l’absence de cet item sur la détermination du résultat.

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 :

T est l’ensemble des enregistrements


X est la prémisse X = {X1 , X2 , ..., Xp }, | X |= p
Y est la conclusion Y = {Y1 , Y2 , ..., Yp }, | Y |= q
| X |= nX = p
| Y |= nY = q
| T |= n (4.1)
| X ∩ Y |= nXY
Xi est l’ième attribut de la prémisse
Xik est la kième valeur possible par l’ième attribut (ici 0 ou 1)
p(X) est la probabilité que X soit vérifié. Dans T : p(X) = nnX
E est un ensemble (prémisse ou conclusion)

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 )

On interprète le résultat de la façon suivante :


– implicationConf iance() > 1 : La confiance est supérieure quand l’item est supprimé,
l’item n’a donc aucune implication
– 0 6 implicationConf iance() ≤ 1 : La confiance est inférieure quand l’item est supprimé,
l’attribut a donc une implication. Il s’agit d’une mesure probabiliste comprise entre 0 et
1. Si la valeur obtenue est faible, la confiance a beaucoup diminué, l’item est donc très
important. Si la valeur obtenue est forte, la confiance n’a pas beaucoup diminué, l’item est
donc peu important.

La mesure de confiance est également utilisée par défaut comme mesure d’intérêt générale
de la règle

Le gain d’information de Freitas


Le gain d’information de Freitas est une mesure objective de l’information fournie par un item,
se basant sur une évaluation de la "surprise", du coté "surprenant" procuré par cet attribut.

GainInf o(Xi ) = Inf o(Y ) − Inf o(Y | Xi )


Pn
Inf o(Y ) = − j=1 p(Yj )log(p(Yj )) (4.4)
Pm Pn
Inf o(Y | Xi ) = k=1 p(Xik )(− j=1 p(Yj | Xik )log(p(Yj | Xik )))
On note que k ne peut prendre que les valeurs 0 et 1, car on travaille sur un échantillon
binarisé. Toutes les informations dont nous aurons besoins pour déterminer ces mesures d’intérêt
sont fournies dans le modèle de données. Certaines auront néanmoins besoin d’être calculées, on
n’oubliera pas les formules usuelles de probabilités, notamment :

| A ∩ B ∩ C ∩ ... ∩ I | + | A ∩ B ∩ C ∩ ... ∩ I¯ |=| A ∩ B ∩ C ∩ ... | (4.5)

4.2.3 Transcription graphique


On définit le moyen de passer des considérations numériques aux considérations graphiques :

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 :

– 0 6 relationLif t() 6 13 : Couleur bleue (bonne corrélation)


– 13 ≤ relationLif t() 6 23 : Couleur verte (corrélation moyenne)
– 23 ≤ relationLif t() : Couleur rouge (mauvaise corrélation)

– 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 :

– 0 6 implicationConf iance() 6 13 : Couleur bleue (item très impliqué)


– 13 ≤ implicationConf iance() 6 23 : Couleur verte (item moyennement impliqué)
– 32 ≤ implicationConf iance() : Couleur rouge (item peu impliqué)

– 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 :

– Rayonmaximal = 4.0, le calcul sera fait relativement au maximum de gain constaté


dans l’ensemble des items, les sphères les plus grosses représenteront les items les plus
impliqués. Le calcul relatif permet d’éviter les problèmes de type "toutes les sphères
sont petites", car les gains d’informations au sens de Freitas sont empiriquement faibles.

– 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 :

– Longueur = (conf iance ∗ 5) + 5, la longueur du lien est donc comprise entre 5 et 10


cm. Les liens les plus long représenteront les meilleures confiances.

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)

On la renomme pour l’occasion : (O = o, T = h) → (W = f )

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>
 

Calcul du gain d’information de Freitas


On calcule ce gain pour chacun des attributs

GainInf o(O = o) = Inf o(W = f ) − Inf o(W = f | O = o)

Inf o(W = f ) = −p(W = f )log(p(W = f ))


P1
Inf o(W = f | O = o) = k=0 p((O = o)k )(−p(W = f | (O = o)k )log(p(W = f | (O = o)k )))

On travaille en binaire, la somme porte donc sur deux éléments (0 et 1)


(4.6)

8 8
Inf o(W = f ) = − 14 log( 14 )

Inf o(W = f ) = 0.426

Inf o(W = f | O = o) = [p((O = o)1 )(−p(W = f | (O = o)1 )log(p(W = f | (O = o)1 )))]

+[p((O = o)0 )(−p(W = f | (O = o)0 )log(p(W = f | (O = o)0 )))]

4
Inf o(W = f | O = o) = [ 14 (− 42 log 24 )]

10 6 6
+[ 14 (− 10 log 10 )]

Inf o(W = f | O = o) = 0.138


(4.7)

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 :

GainInf o(T = h) = 0.299 (4.9)

Pour le calcul du gain de l’attribut de conclusion, on assimile l’attribut à un attribut de pré-


misse, et la prémisse à une conclusion :

GainInf o(W = f ) = 0.311 − 0.302 = 0.009 (4.10)

Calcul de l’implication de l’item sur l’autre ensemble


On calcule une valeur pour chacun des attributs, cette valeur correspond à la différence entre
la confiance de la règle, et la confiance de la règle en l’absence de l’attribut. Si cette valeur est
négative, la confiance est supérieure sans l’attribut, il n’a donc aucune utilité. Ensuite, plus cette
valeur est élevée, plus l’absence de l’attribut fait baisser la confiance, donc plus l’attribut est
essentiel.

La confiance totale de la règle

|(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

La confiance totale de la règle inverse

|(W =f )∩(O=o,T =h)|


Conf (W = f → O = o, T = h) = |O=o,T =h| (4.12)

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 des relations inter-items au sein d’un ensemble


Seul la prémisse possède plusieurs attributs, il n’y a donc que dans cet ensemble que l’on puisse
calculer des relations inter-items. La prémisse possède deux attributs, on évalue donc uniquement
la relation les unissant.

Calcul du lift :

conf iance(O=o→T =h)


lif t(O = o → T = h) = lif t(T = h → O = o) = support(T =h)

|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

Représentation graphique de la règle

Il reste à représenter graphiquement la règle, en transcrivant graphiquement les valeurs nu-


mériques que l’on vient de calculer. La figure 4.4 présente le résultat (dessiné) que l’on souhaite
obtenir par le biais du logiciel à développé.

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.

Exemple 2 issue d’une base WEKA

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)

Calcul du gain d’information de Freitas

44
F IGURE 4.4 – Exemple de la métaphore 1 : Représentation souhaitée

On calcule ce gain pour chacun des attributs

GainInf o(M = a) = Inf o(S = a) − Inf o(S = a | M = a)

Inf o(S = a) = −p(S = a)log(p(S = a))


P1
Inf o(S = a | M = a) = k=0 p((M = a)k )(−p(S = a | (M = a)k )log(p(S = a | (M = a)k )))

On travaille en binaire, la somme porte donc sur deux éléments (0 et 1)


(4.17)

45
F IGURE 4.5 – Liste des règles d’association découvertes par Weka (A Priori)

Inf o(S = a) = − nS=a


n
∗ log( nS=a
n
)= 625
683
625
∗ log( 683 )

Inf o(S = a) = 0.035

Inf o(S = a | M = a) = [p((M = a)1 )(−p(S = a | (M = a)1 )log(p(S = a | (M = a)1 )))]

+[p((M = a)0 )(−p(S = a | (M = a)0 )log(p(S = a | (M = a)0 )))]

Inf o(S = a | M = a) = [ 639


683
619
(− 639 log 619
639
)]

44 6 6
+[ 683 (− 44 log 44 )]

Inf o(S = a | M = a) = 0.0125


(4.18)

46
On obtient donc :
GainInf o(M = a) = 0.035 − 0.0125
(4.19)
GainInf o(M = a) = 0.0225

On calcule de la même manière pour le deuxième attribut de la prémisse :

GainInf o(ID = n) = 0.035 − 0.0235


(4.20)
GainInf o(ID = n) = 0.0115

Pour le calcul du gain de l’attribut de conclusion, on assimile l’attribut à un attribut de pré-


misse, et la prémisse à une conclusion :

GainInf o(S = a) = 0.087 − 0.0443


(4.21)
GainInf o(S = a) = 0.0427

Calcul de l’implication de l’item sur l’autre ensemble


On calcule une valeur pour chacun des attributs, cette valeur correspond à la différence entre
la confiance de la règle, et la confiance de la règle en l’absence de l’attribut. Si cette valeur est
négative, la confiance est supérieure sans l’attribut, il n’a donc aucune utilité. Ensuite, plus cette
valeur est élevée, plus l’absence de l’attribut fait baisser la confiance, donc plus l’attribut est
essentiel.

La confiance totale de la règle

|(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

La confiance totale de la règle inverse

|(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.

Calcul des relations inter-items au sein d’un ensemble


Seul la prémisse possède plusieurs attributs, il n’y a donc que dans cet ensemble que l’on puisse
calculer des relations inter-items. La prémisse possède deux attributs, on évalue donc uniquement

48
la relation les unissant.

Calcul du lift :

conf iance(M =a→ID=n)


lif t(M = a → ID = n) = lif t(ID = n → M = a) = support(ID=n)

|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

lif t(M = a → ID = n) = 1.254


(4.27)
1
relationLif t(M = a → ID = n) = lif t(M =a→ID=n)
(4.28)
relationLif t(M = a → ID = n) = 0.797
Le lift est supérieur à 0, il existe donc un effet levier entre (ID = n) et (M = a). L’inverse
du lift nous permet de changer l’ordre de grandeur, et de représenter une distance.
La confiance générale de la règle a déjà été calculée en 4.22

Représentation graphique de la règle

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 représentation de l’implication entre les items


– La représentation des relations inter-items dans les deux ensembles (prémisse,conclusion)
– La représentation de l’implication de chaque item s’effectue via le support, plus le support
de l’item concerné est élevé, plus le diamètre de la sphère le modélisant sera élevé, cela
représente d’une manière générale la fréquence des items

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.

Un petit exemple qui peut nous éclaircir cette vision :


Eau gazeuse + Eau naturelle —» Coca cola

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.).

4.3.2 Mesures d’intérêt utilisées


On décrit ici les mesures d’intérêt utilisées dans les métaphores. Dans ce qui va suivre, on
utilise la même syntaxe que définie à l’équation 4.1.

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 |

Ici, | T | est le nombre total d’enregistrements de l’échantillon


On utilise cette mesure pour représenter l’implication générale d’un item.

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.

4.3.3 Transcription graphique


On définit le moyen de passer des considérations numériques aux considérations graphiques :

– 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 :

– 0 6 relationLif t() 6 13 : Une couleur (bonne corrélation)


– 13 ≤ relationLif t() 6 23 : Une couleur (corrélation moyenne)
– 23 ≤ relationLif t() : Une couleur (mauvaise corrélation)

– 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 :

– Longueur = (conf iance ∗ 5) + 5, la longueur du lien sera donc comprise entre 5 et 10


cm. Les liens les plus long représentent les meilleures confiances.

4.3.4 Exemples applicatifs


Nous proposons ici un exemple très simple pour montrer le déroulement des calculs afin d’af-
ficher une règle dans cette métaphore.

A B C D
1 1 1 1
1 0 0 1
0 0 1 1
0 1 1 0
0 0 1 0

F IGURE 4.7 – Application de la métaphore 2, tableau des enregistrements

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

Conf iance(A → C) = 1/2


Conf iance(A → D) = 1/2
Conf iance(B → C) = 1
Conf iance(B → D) = 1/2

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é.

4.4 Autre métaphore


Nous avons aussi essayé de trouver une métaphore qui réponde à notre problématique de
visualisation, cette métaphore n’est néanmoins pas implémentée dans le logiciel. Notre choix
n’était pas loin des deux métaphores précédentes, mais nous nous sommes occupés de quelques
points intéressants tels que :

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.

F IGURE 4.8 – Autre métaphore proposée

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 :

– Modèle de données Cette partie décrit la démarche d’importation, de stockage et de trans-


formation des données.
– Affichage graphique Cette partie décrit la démarche d’affichage des règles d’association
dans l’espace 3D.

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.

F IGURE 5.1 – Diagramme de classe général

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.

5.1.2 Structuration des données d’affichage


Maintenant que les règles/items/itemsets sont présents en mémoire, il convient d’organiser
une nouvelle structure qui contiendra les données prêtes à être affichées, c’est à dire possé-
dant toutes les informations relatives aux métaphores 3D choisies au chapitre 4. On organise les
choses de la manière suivante :

– 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.

RegleClasse : Informations contenues


– Mesure d’intérêt générale pour la métaphore 1
– Mesure d’intérêt générale pour la métaphore 2
– Nombre d’éléments de la prémisse
– Nombre d’éléments de la conclusion
– Noms des items de la règle
– Liste des implications d’un item en particulier pour la métaphore 1
– Liste des implications d’un item en particulier pour la métaphore 2
– Liste des implications d’un item sur l’autre ensemble pour la métaphore 1
– Liste des implications de chaque item de prémisse sur chaque item de conclusion pour la
métaphore 2
– Liste des intensités des relations existantes entre deux items d’un même ensemble pour la
métaphore 1
– Liste des intensités des relations existantes entre deux items d’un même ensemble pour la
métaphore 2

UniqueRegles : Informations contenues


– Nombre d’enregistrements de l’échantillon
– Nom du fichier à analyser
– Lien vers les données importées et présentes en mémoire
– Liste des règles (RegleClasse) prêtes à être affichées
– Numéro de la métaphore 3D (1 ou 2)

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.

Les classes RegleClasse et UniqueRegles contiennent également de nombreuses méthodes


permettant d’ajouter/supprimer/analyser les données présentes. La classe UniqueRegles contient
également le long algorithme permettant de calculer, construire et stocker les objets RegleClasse.
La figure 5.2 présente le diagramme des classes du modèle de données.

F IGURE 5.2 – Diagramme de classes, modèle de données

Une fois définie l’organisation, la transformation des données et le stockage peut commencer.

5.1.3 Transformation des données


On entreprend ici de transformer les données importées en 5.1.1 pour en faire des données
prêtes à être affichées, selon la structure définie en 5.1.2. La transformation des données est
réalisées par des méthodes de la classe UniqueRegles. On procède selon l’algorithme 1.

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

5.2 Affichage graphique des règles


Cette section présente les librairies graphiques utilisées dans le logiciel, ainsi que la manière
dont sont affichées les règles d’association dans l’espace.

5.2.1 Présentation d’OpenGL/GLUT


OpenGL (Open Graphics Library) est une spécification qui définit une API multi-plateforme
pour la conception d’applications générant des images 3D, les avantages de cette librairie sont
d’être performante dans la modélisation d’environnements 3D et d’être librement utilisable.

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.

5.2.2 Fonctionnement basique


L’affichage des règles commence après que le modèle de données ait été créé, manipulé, et
que toutes les informations nécessaires à l’affichage des règles aient été calculées (voir section

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

Algorithme 3 Algorithme de calcul des positionnements pour le placement des sphères


1: pour Chaque règle faire
2: Calcul de la position du centre de gravité de la zone des sphères de prémisse
3: pour Chaque item de prémisse faire
4: Ajout de la sphère de l’item autour de ce centre
5: fin pour
6: Ajout des liens et autres objets graphiques de la prémisse
7: Calcul de la position du centre de gravité de la zone des sphères de conclusion, en fonction
de la position du centre de gravité de la zone des sphères de prémisse
8: pour Chaque item de conclusion faire
9: Ajout d’une sphère autour de ce centre pour chaque item de conclusion
10: fin pour
11: Ajout des liens et autres objets graphiques de la conclusion
12: Ajout du lien prémisse-conclusion
13: fin pour

5.2.3 Représentation d’une règle par la métaphore 1


On représente une règle via la métaphore 1 selon les critères de transcription définis en sec-
tion 4.2.3. Les items sont donc représentés en sphères, dont la couleur représente l’implication
d’un item sur l’autre ensemble, et le diamètre l’implication d’un item en particulier (via le gain
d’information de Freitas). La couleur du lien entre deux sphères (dans le même ensemble) reflète
l’intensité de la relation entretenue entre les deux items via le lift. Le lien blanc représente la
confiance globale de la règle, le sens est précisé par un cône orienté vers la conclusion.

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

5.2.4 Représentation d’une règle par la métaphore 2


On représente une règle via la métaphore 2 selon les critères de transcription définis en section
4.3.3. Les items sont également représentés en sphères, dont le diamètre représente l’implication
d’un item en particulier via le support. La couleur du lien entre deux sphères (dans le même
ensemble) reflète l’intensité de la relation entretenue entre les deux items via le lift, et la couleur
entre deux sphères d’ensembles différents représente l’implication d’un item de prémisse sur un
item de conclusion en particulier (via la confiance). Le lien blanc représente la confiance globale
de la règle, le sens est précisé par un cône orienté vers la conclusion.

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.

F IGURE 5.4 – Représentation d’une règle dans la métaphore 2

5.2.5 Fonctions graphiques importantes


– HandleVisibility() : Mise a jour dynamique de l’affichage

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.

F IGURE 5.5 – Diagramme de classes, affichage graphique des règles d’association

65
Chapitre 6

Conclusion

6.1 Résumé du travail effectué


Durant ces quatre mois de projet, nous avons :
– Fait un état de l’art concernant la représentation graphique des règles d’association
– Etudié la technique des règles d’association
– Etudié les mesures d’intérêt pouvant évaluer une règle
– Etudié le fonctionnement du logiciel ARVIS, étant la proposition actuelle, en matière de
fouille de données virtuelle sur les règles d’association
– Tenté de formaliser au mieux les métaphores 3D servant à la représentation graphique des
règles d’association dans notre logiciel
– Pris en main l’outil C++/OpenGL/GLUT
– Développé un logiciel pouvant servir à détecter des règles d’association intéressantes lors
d’un processus de fouille de données.

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

A.1 Diagramme de Gantt


La répartition des tâches est fournie en hommes/heures. Les deux ressources sont :

– Romain BRUNEAU (RB)


– Mohamed Amine HALLAM (MAH)

F IGURE A.1 – Diagramme de Gantt du projet

A.2 Fiches de 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

1.1 Exemple de règle d’association, trouvé dans [Rak08] p7 . . . . . . . . . . . . . . 9

2.1 Exemple d’enregistrements, [Gui08a] p3 . . . . . . . . . . . . . . . . . . . . . . 13


2.2 Le processus de fouille de données [Gui08a] p8 . . . . . . . . . . . . . . . . . . 14
2.3 Exemple d’enregistrements binarisés, [Gui08a] p8 . . . . . . . . . . . . . . . . . 15
2.4 Liste non-exhaustive des mesures d’intérêt existantes, [LT03] p7 . . . . . . . . . 17
2.5 Outil aiSee, [ASAVK07] p22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Outil LARM (Large Association Rules Mining), [ASAVK07] p22 . . . . . . . . 22
2.7 Outil Infovis, [ASAVK07] p22 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Outil applet java, [ASAVK07] p22 . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1 L’outil ARVis (Association Rule Visualization) [Bla05] p122 . . . . . . . . . . . 25

4.1 Tableau des effectifs à fournir pour la prémisse . . . . . . . . . . . . . . . . . . 27


4.2 Tableau des effectifs à fournir pour la conclusion . . . . . . . . . . . . . . . . . 27
4.3 Tableau des effectifs à fournir pour la conclusion . . . . . . . . . . . . . . . . . 28
4.4 Exemple de la métaphore 1 : Représentation souhaitée . . . . . . . . . . . . . . 45
4.5 Liste des règles d’association découvertes par Weka (A Priori) . . . . . . . . . . 46
4.6 Exemple de la métaphore 1 (WEKA) : Représentation souhaitée . . . . . . . . . 50
4.7 Application de la métaphore 2, tableau des enregistrements . . . . . . . . . . . . 54
4.8 Autre métaphore proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.1 Diagramme de classe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57


5.2 Diagramme de classes, modèle de données . . . . . . . . . . . . . . . . . . . . . 60
5.3 Représentation d’une règle dans la métaphore 1 . . . . . . . . . . . . . . . . . . 64
5.4 Représentation d’une règle dans la métaphore 2 . . . . . . . . . . . . . . . . . . 64
5.5 Diagramme de classes, affichage graphique des règles d’association . . . . . . . 65

A.1 Diagramme de Gantt du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

84

You might also like