You are on page 1of 13

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Fouille de Donnes - TP1 : Weka, rgles dassociation, clustering,


classification
M2 TIW2 2014-2015

Cette sance pour but de prendre en main weka, une plateforme dalgorithmes de data mining crite en java que
nous rutiliserons ainsi que dexprimenter lalgorithme APriori de gnration de rgles dassociation et les algorithmes
de clustering et de classification vus en cours. Vous pouvez vous mettre en (bi|tri)nme. Un compte-rendu sous la
forme dun document .pdf (.doc refus ainsi que les sources Java sont rendre avant le 17/11/2014, 08 :59. Les
comptes-rendus doivent tre envoys marc.plantevit@univ-lyon.fr avec comme objet "[M2TIW] CR TP1". Noubliez
dindiquer les noms des membres du (mo|bi|tri)nme dans le corps du message et le compte-rendu. Dans le compte
rendu figureront uniquement les rponses aux sections 6, 7, 10, 11, 12, 18 et 19.
Pour la deuxime sance, veillez tlcharger et installer 1 Knime (https://www.knime.org/).

Prsentation et installation de Weka

Weka est un ensemble de classes et dalgorithmes en Java implmentant les principaux algorithmes de data
mining. Il est disponible gratuitement ladresse www.cs.waikato.ac.nz/ml/weka, dans des versions pour Unix
et Windows. Ce logiciel est dvelopp en parallle avec un livre : Data Mining par I. Witten et E. Frank (ditions
Morgan Kaufmann). Weka peut sutiliser de plusieurs faons :
Par lintermdiaire dune interface utilisateur : cest la mthode utilise dans ce TP.
Sur la ligne de commande.
Par lutilisation des classes fournies lintrieur de programmes Java : toutes les classes sont documentes dans
les rgles de lart. Nous y reviendrons sans doute dans un prochain TP.
1. Tlchargez Weka et installez le.
2. Tlchargez lexcellente prsentation dEibe Frank http://liris.cnrs.fr/marc.plantevit/ENS/TP/
weka.ppt et parcourez l (un tutorial sur Weka est galement disponible : http://liris.cnrs.fr/marc.
plantevit/ENS/TP/Tutorial.pdf).

Premiers pas

Weka est maintenant install sur votre compte. Aprs lavoir lanc, vous obtenez la fentre intitule Weka GUI
Chooser : choisissez lExplorer. La nouvelle fentre qui souvre alors (Weka Knowledge Explorer) prsente six onglets :
Preprocess : pour choisir un fichier, inspecter et prparer les donnes.
Classify : pour choisir, appliquer et tester diffrents algorithmes de classification : l, il sagit dalgorithmes de
classification supervise.
Cluster : pour choisir, appliquer et tester les algorithmes de segmentation.
Associate : pour appliquer lalgorithme de gnration de rgles dassociation.
Select Attributes : pour choisir les attributs les plus prometteurs.
Visualize : pour afficher (en deux dimensions) certains attributs en fonctions dautres.

Les donnes

Les donnes sont sous un format ARFF -pour Attribute-Relation File Format-. Des exemples de donnes sont
disponibles une fois weka install 2 . Ouvrez dans un diteur un de ces fichiers dexemples et regardez son format.
1. avec toutes ses extensions possibles.
2. Au cas o, http://liris.cnrs.fr/marc.plantevit/ENS/TP/data/

TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Il est simple et il est facile de convertir des donnes-par exemple issues dun tableur- en ARFF. (Il y a mme un
convertisseur inclus dans Weka du format csv vers le format arff).
Dans longlet Preprocess, cliquez sur Open File et ouvrez par exemple le fichier iris.arff : il contient la description
de 150 spcimens diris de trois sortes diffrentes. Chaque description est compose de quatre attributs numriques
(dimensions des spales et des ptales), et dun cinquime attribut qui est la classe de cet exemple (i.e. la sorte diris
laquelle il appartient). Pour chacun des attributs, vous pouvez obtenir, en cliquant dessus dans la sous-fentre
Attributes, des statistiques basiques sur la rpartition des valeurs pour cet attribut (sous-fentre Selected Attribute).
On peut appliquer diffrents filtres aux donnes ; nous y reviendrons tout lheure.

Visualisation des donnes

Pour une premire approche des donnes, passez dans la fentre Visualize. Vous y voyez un ensemble de 25
graphiques (que vous pouvez ouvrir en cliquant dessus), qui reprsentent chacun une vue sur lensemble dexemples
selon deux dimensions possibles, la couleur des points tant leur classe. Sur le graphique, chaque point reprsente un
exemple : on peut obtenir le descriptif de cet exemple en cliquant dessus. La couleur dun point correspond sa classe
(dtaill dans la sous-fentre Class colour). Au dpart, le graphique nest pas trs utile, car les axes reprsentent le
numro de lexemple.
1. Changez les axes pour mettre la largeur des ptales en abscisse, et la longueur des spales en ordonnes.
2. Proposez un ensemble de deux rgles simples permettant de classer les exemples selon leur genre : quelle erreur
commettrez-vous ? Les petits rectangles sur la droite de la fentre reprsentent la distribution des exemples,
pour lattribut correspondant, par rapport lattribut (ou la classe) cod par la couleur. En cliquant du bouton
gauche sur un de ces rectangles, vous le choisissez comme axe des X, le bouton droit le met sur laxe des Y.
3. En mettant la classe sur laxe des X, quels sont votre avis les attributs qui, pris seuls, permettent le mieux de
discriminer les exemples ? Si les points sont trop serrs, le potentiomtre Jitter, qui affiche les points " peu
prs" leur place, vous permet de les visualiser un peu plus sparment : cela peut tre utile si beaucoup de
points se retrouvent au mme endroit du plan.

Un premier exemple de rgle dassociation


1. Lancez Weka, puis lExplorer. Choisissez le fichier weather.nominal.arff : cest lexemple standard du golf (ou
du tennis. . . ), o tous les attributs ont t discrtiss. Les algorithmes de recherche de rgles dassociation se
trouvent sous longlet Associate.
2. Choisissez lalgorithme Apriori.
3. Vrifiez que tout fonctionne en lanant lalgorithme sans modifier les paramtres du programme.
4. Quelles sont les informations retournes par lalgorithme ?

5.1

Modification des paramtres

En cliquant du bouton droit dans la fentre en face du bouton Choose, on a accs aux paramtres de lalgorithme.
Le bouton More dtaille chacune de ces options.
delta : fait dcrotre le support minimal de ce facteur, jusqu ce que soit le nombre de rgles demandes a t
trouv, soit on a atteint la valeur minimale du support lowerBoundMinSupport
lowerBoundMinSupport : valeur minimale du support (minsup en cours). Le support part dune valeur initiale,
et dcrot conformment delta.
metricType : la mesure qui permet de classer les rgles. Supposons que L dsigne la partie gauche de la rgle et R
la partie droite. Il y en a quatre (L dsigne la partie gauche de la rgle et R la partie droite) :
Confidence : la confiance.
Lift : lamlioration.
Leverage : proportion dexemples concerns par les parties gauche et droite de la rgle, en plus de ce qui
seraient couverts, si les deux parties de la rgles taient indpendantes :
Conviction : similaire lamlioration, mais on sintresse aux exemples o la partie droite de la rgle nest
pas respecte. Le rapport est invers.
minMetric : la valeur minimale de la mesure en dessous de laquelle on ne recherchera plus de rgle.
numRules : Le nombre de rgles que lalgorithme doit produire.

TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

removeAllMissingCols : enlve les colonnes dont toutes le valeurs sont manquantes.


significanceLevel : test statistique
upperBoundMinSupport : valeur initiale du support.
1. Sur le fichier weather.nominal.arff, comparer les rgles produites selon la mesure choisie.

Un deuxime exemple de rgles dassociation

Le fichier bank-data.cvs contient des donnes extraites dun recensement de la population amricaine. Le but de
ces donnes est initialement de prdire si quelquun gagne plus de 50.000 dollars par an. On va dabord transformer
un peu les donnes :

6.1

Transformation des donnes

Rcuprer le fichier bank-data.csv 3 Revenez la fentre Preprocess.


1. Tout dabord ouvrez le fichier bank-data.csv : il vous sera propos dutiliser un convertisseur : dites-oui ! Weka
met votre disposition des filtres permettant soit de choisir de garder (ou dcarter) certains exemples, soit
de modifier, supprimer, ajouter des attributs. La sous-fentre Filters vous permet de manipuler les filtres. Le
fonctionnement gnral est toujours le mme :
Vous choisissez un ensemble de filtres, chaque filtre, avec ces options, tant choisi dans le menu droulant
du haut de la sous-fentre, puis ajout la liste des filtres par la commande Add.
On applique les filtres avec la commande Apply Filters.
On peut alors remplacer le fichier prcedemment charg par les donnes transformes, laide du bouton
Replace.
Ce fichier devient alors le fichier de travail.
Le bouton Save sauvegarde ces donnes transformes dans un fichier.
2. Pouvez vous lancer lalgorithme Apriori ? Pourquoi ?

6.2

Slection des attributs

Les donnes comportent souvent des attributs inutiles : numro de dossier, nom,date de saisie . . . . Il est possible
den supprimer la main, condition de connatre le domaine. On peut aussi lancer un algorithme de data mining,
et regarder les attributs qui ont t utiliss : soient ceux-ci sont pertinents, et il est important de les garder, soient
ils sont tellement lis la classe qu eux seuls ils emportent la dcision (pensez un attribut qui serait la copie
de la classe). Weka a automatis cette recherche des attributs pertinents dans le filtre AttributeSelectionFilter, qui
permet de dfinir les attributs les plus pertinents selon plusieurs mthodes de recherche (search), en utilisant plusieurs
mesures possibles de la pertinence dun attribut (eval).
1. Ici lattribut id est une quantit quon peut ignorer pour la fouille : supprimez le !

6.3

Discrtisation

Certains algorithmes ont besoin dattributs discrets pour fonctionner, dautres nacceptent que des attributs
continus (rseaux de neurones, plus proches voisins). Dautres encore acceptent indiffremment des attributs des
deux types. Weka dispose de filtres pour discrtiser des valeurs continues. Le filtre DiscretizeFilter permet de rendre
discret un attribut continu et ceci de plusieurs faons :
En partageant lintervalle des valeurs possibles de lattribut en intervalles de taille gale.
En le partageant en intervalles contenant le mme nombre dlments.
En fixant manuellement le nombre dintervalles (bins).
En laissant le programme trouver le nombre idal de sous intervalles.
Ici il y a plusieurs attributs numriques : "children", "income", "age".
1. Discrtiser age et income en utilisant le filtre Weka et en forant le nombre dintervalles 3. Sauver le fichier
transform par exemple dans bank1.arff.
2. Lattibut children est numrique mais ne prend que 4 valeurs : 0,1,2,3 ; pour le discrtiser, on peut soit utiliser
le filtre, soit le faire la main dans le fichier arff.
Remarque : si vous ditez directement le fichier, vous pouvez en profiter pour rendre les donnes plus lisibles, par
exemple en traduisant le nom des attributs, en donnant des noms aux intervalles obtenus par la discrtisation...
3. http ://archive.ics.uci.edu/ml/

TIW2 2014/2015

Fouille de Donnes

6.4

TP1: Weka, (large) tour dhorizon

APriori

Sauvez dans bankd.arff le rsultat de vos transformations : cest le fichier qui va servir pour la gnration des
rgles dassociation.
1. Appliquez lalgorithme Apriori et tentez dinterprter les rgles produites. Jouez sur les paramtres. Comment
se comporte le temps dexcution en fonction des paramtres ? Quels sont les paramtres les plus "critiques" ?
2. Utilisez lalgorithme Tertius. Que constatez-vous sur la forme des rgles ?

6.5

Classification avec Apriori

Reprenez le fichier iris.arff ; discrtisez les attributs continus, vous pouvez galement crer de nouveaux attributs
qui peuvent la combinaison dautres (par exemple, (A1 A2 )2 ). Appliquez ensuite lalgorithme Apriori. Examinez
les rgles produites avec comme conclusion uniquement la classe : correspondent-elles votre intuition ? Comparez
avec ce qui est produit par un algorithme de classification, en choisissant par exemple dans trees, J48 qui construit
un arbre de dcision.

Promotions de Nol et picerie de nuit

Lpicerie de nuit de la rue "remplacez par votre rue favorite" a dcid lapproche des ftes de fin danne de
lancer une vaste opration de promotion. Son patron, fervent adepte des nouvelles technologies et de la fouille de
donnes (a arrive), vous demande dutiliser les rgles dassociations pour trouver des rgles intressantes pour ses
futures promotions. Il va donc rutiliser le bilan dachats de lanne dernire la mme date :
Achats
Mme Michou
Tonton Grard
Mme Gunolet
Mr Robert
Mr Sar
Mr causy
Mme mimi
Mme Fillon

Produit 1
X
X

Produit 2

Produit 3

Produit 4
X

X
X
X

X
X

X
X

Produit 5
X
X
X
X
X
X
X

Table 1 Table dachats de lanne 2006-2007


1. Gnrer un fichier ARFF contenant les donnes du bilan dachat
2. Extraire les rgles dassociations avec un support de 0.5 puis de 0.1
3. Que pouvez-vous conseiller comme promotion au patron ?

Mise en uvre

Rendez vous sur le site http://archive.ics.uci.edu/ml/, choisissez un jeu de donnes et importer le dans
weka afin de le visualiser et extraire des rgles dassociation.

API Weka

Il est possible dutiliser directement les algorithmes sur des jeux de donnes en les appelant directement partir
de votre propre code Java.
1. Etudiez lAPI de Weka, notamment pour les rgles dAssociation, puis dans un programme Java, automatisez
directement ce que vous avez fait via linterface graphique en appelant directement les algorithmes ncessaires.
2. Utilisez le code prcdent pour tudier le temps dexcution de lalgorithme Apriori en fonction du seuil de
support et du seuil de confiance (vous pouvez gnrer des graphes laide de gnuplot).

TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Clustering Introduction
Nous allons utiliser le paquetage weka.clusterers pour l ?analyse de donnes qui ne contiennent pas d ?attribut de
classe. Ainsi, puisque presque tous les ensembles de donnes que nous utilisons possdent un attribut de classe, nous
allons ignorer ces attributs (sauf pour les phases d ?valuation). Nous allons utiliser le Weka Knowledge Explorer.
Remarque : Si vous souhaitez voir les commandes spcifiques des algorithmes, vous pouvez utiliser le simple
CLI (command line options) : java weka.clusterers.Cobweb -h pour le clustering conceptuel. Ou encore :
java weka.clusterers.SimpleKMeans -h pour le k-means clustering.

10

Premiers contacts

Les classes qui implmentent une mthode de clustering dans loutil Weka, sont regroupes dans le package
weka.clusterers. La classe weka.clusterers.Clusterer dfinit la structure gnrale commune toutes les mthodes de
clustering. A partir de longlet Cluster on peut observer quatre algorithmes implments : SimpleKMeans, EM
(expectation-maximization), CobWeb et FarthestFirst.
Weka affiche le nombre dexemples assigns chaque cluster. Weka permet de tester la qualit du modle sur
un jeu de test. Cest la mesure de vraisemblance (log-likelihood) qui est utilise. Plus la mesure est grande, mieux le
modle caractrise les donnes. Le test peut tre effectu par validation croise.
La bote Cluster mode permet de choisir la mthode dvaluation du modle extrait.
Use training set : effectue et teste le clustering sur le mme jeu de donnes ;
Supplied test set : teste le clustering sur un jeu de donnes spcifier ;
Percentage split : effectue le clustering sur le pourcentage indiqu du jeu de donnes et teste sur le pourcentage
restant ;
Classes to clusters evaluation : teste le clustering relativement une classe
Pour cet exercice, on considrera les donnes du fichier vote.arff. Ce jeu de donnes dcrit le rsultat des votes
de chaque reprsentant au Congrs des Etats-Unis sur les 9 questions cls identifis par le Congressional Quarterly
Almanac.

10.1

Analyse exploratoire

Effectuez une premire analyse du jeu de donnes. Combien dinstances ? Combien dattributs ? Quels types ? etc.

10.2

K-Means

Effectuez un clustering du jeu de donnes en utilisant lalgorithme SimpleKMeans et en conservant les paramtres
par dfaut.
Le rsultat du clustering est donn avec une instance par cluster reprsentant le centrode du cluster.

TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Visualisation :
A partir de la bote Result List (bouton droit, Visualize cluster assignement), visualisez la rpartition des
exemples dans chaque cluster.
valuation relativement une classe
Loption dvaluation Classes to clusters evaluation permet dassigner une classe un cluster pendant la phase
de test. La classe assigne est la plus frquente dans le cluster ; une erreur de classement (taux de mal classs) est
calcule ainsi que la matrice de confusion. Dans ce cas, lalgorithme ne prend pas en compte la valeur de cet attribut
dans le calcul de distance.
Effectuez un clustering du jeu de donnes en utilisant la mthode implmente par SimpleKMeans en conservant
les paramtres par dfaut avec loption Classes to clusters evaluation et lattribut de classe class
Recommencez en modifiant lattribut de classe et observer les taux derreur
Conservez les meilleurs rsultats et effacer les autres de la liste des rsultats. Quel est lattribut de classe pour
lequel lerreur est la plus faible ?
Visualisez : A partir de la bote Result List (bouton droit, Visualize cluster assignement), visualiser la rpartition
des exemples dans chaque cluster. Les croix reprsentent les instances classes dans le "bon" cluster et les carrs
reprsentent les instances classes dans le "mauvais" cluster.
Exportez le rsultat de votre clustering (le meilleur) et caractrisez les clusters via des rgles dassociation.
Comparaison de modles
Lancez lalgorithme SimpleKMeans plusieurs fois avec les valeurs 20, 50, 100, 1000 pour le paramtre random
seed avec loption Classes to clusters evaluation et lattribut de classe class et en fixant le nombre de clusters
2.
Quel est le meilleur rsultat selon le taux d ?erreur et la taille de clusters.
Conservez le meilleur rsultat

10.3

EM

La mthode EM (Expectation Maximisation) gnre une description probabiliste des clusters en terme de moyenne
et cart-type pour les attributs numriques et en terme de nombre pour les attributs nominaux. Chaque cluster est
dcrit par sa probabilit a priori et une distribution de probabilit pour chaque attribut. Pour un attribut nominal, est
affich le nombre dexemples et pour un attribut numrique est affich les caractristiques de sa distribution normale.
Loption dvaluation Classes to clusters evaluation affiche aussi le log-likelihood, (ou log-vraissemblance) assigne
une classe au cluster, calcule lerreur et la matrice de confusion.
TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Effectuez un clustering du jeu de donnes en utilisant la mthode EM avec les paramtres par dfaut. Combien
de classes sont dcouvertes ?
valuation relativement une classe
Effectuez un clustering du jeu de donnes en utilisant la mthode EM en fixant le nombre de clusters 2 et
avec loption Classes to clusters evaluation et lattribut de classe class.
Effectuez un clustering du jeu de donnes en utilisant la mthode EM en fixant le nombre de clusters 2 et
avec loption Classes to clusters evaluation et lattribut de classe el-salvador-aid.
Comparez les rsultats ceux obtenus la question 10.2.

10.4

Clustering hirarchiques avec Cobweb

La mthode Cobweb ralise un clustering hirarchique o les clusters sont dcrits de manire probabiliste. Lalgorithme possde deux options importantes : Cutoff (par dfaut=0.002) et Acuity (par dfaut=1.0). ? ?
Lancez un clustering du jeu de donnes en utilisant la mthode Cobweb avec les paramtres par dfaut et
avec loption Classes to clusters evaluation et lattribut de classe class La fentre d ?output montre le nombre
de noeuds regroups puis dcoups, le nombre de clusters et la structure hirarchique de clusters. Quel est le
nombre de clusters trouvs ?
valuation relativement une classe
Fixez le paramtre Cutoff 0.5 de manire supprimer le dcoupage (split) de noeuds et donc ramener le
nombre de clusters 2 et avec loption Classes to clusters evaluation et lattribut de classe class
Conservez le paramtre Cutoff 0.5 avec loption Classes to clusters evaluation et lattribut de classe elsalvador-aid
Comparez les rsultats obtenus avec les trois mthodes de clustering.

11
11.1

Jeux de donnes de base pour comparer les techniques de clustering


Jeu de donnes ligne-carr

En utilisant le jeu de donnes 2 attributs x et y pour la reprsentation des clusters lignes-carrs (lignec1.arff et
lignec2.arff),
Testez l ?algorithme des K-moyennes et celui l ?Expectation-Maximization.
Permettent-ils de retrouver les groupes identifiables graphiquement ?
Visualisez les assignements aux clusters.

11.2

Jeu de donnes par distribution sur chaque attribut

En utilisant les jeux de donnes pour la distribution (em2.arff et em3.arff).


Testez l ?algorithme des K-moyennes et l ?Expectation maximization.
Permettent-ils de retrouver les groupes identifiables graphiquement ?
Visualisez les assignements aux clusters.

11.3

Donnes Titanic

Filtrez les donnes "titanic.arff" ("titanic.txt") pour enlever la prdiction (SURVIVED) des donnes d ?apprentissage.
Les algorithmes de clustering des K-moyennes et l ?Expectation maximization permettent-ils de dcouper les
donnes en un groupe de survivants et un groupe de non-survivants ?
Visualisez les assignements aux clusters.

11.4

Iris

Testez les algorithmes des K-moyennes et l ?Expectation maximization, en faisant varier les paramtres sur le
jeu de donnes Iris.
Ignorez des attributs et tester l ?influence sur le rsultat.
Visualisez les assignements aux clusters.

TIW2 2014/2015

Fouille de Donnes

11.5

TP1: Weka, (large) tour dhorizon

Bilan

Testez si possible dautres jeux de donnes (de prfrence les plus grands i.d. soybean, labour, etc.) et analysez
les diffrents clusters fournis avec SimpleKMeans, EM et Cobweb.
Finalement, listez les principaux avantages et dsavantages de ces algorithmes de clustering utiliss durant la
sance.
Evaluer la qualit d ?un clustering est toujours difficile lorsque l ?on compare diffrentes excutions. D ?aprs ce
que vous avez constat durant cette sance, quels critres pourriez-vous employer pour la qualite ? des clusters.

12

Application

Cet exercice porte sur les jeux de donnes Clients (Clients.csv) et Immatriculations (Immatriculations.csv) Voici
quelques informations sur les attributs
Pour Clients.csv : ?
taux : exprime en euros la capacit dendettement du client (correspond environ 30% de son salaire)
2eme voiture : valeur boolenne indiquant si le client possdait dj un vhicule principal
Pour Immatriculations.csv :
puissance : exprime en chevaux
longueur : quatre catgories ont t dtermines courte , moyenne , longue et trs longue
prix : en euros
On demande de lancer diffrentes mthodes de clustering sur ces deux jeux de donnes et de prsenter les solutions les
plus pertinentes extraites (on pourra considrer le jeu de donnes Clients_1.csv dans lequel lattribut immatriculation
a t supprim). Il sagira de slectionner diffrents attributs des jeux de donnes initiaux et de lancer diffrents
algorithmes de clustering en faisant varier la valeurs de leurs paramtres

13

Utilisation de weka sans linterface

Dans cette partie, on va utiliser les classes Java de Weka (voir la doc en ligne).
Vous avez d constater que lalgorithme K-Means est sensible linitialisation. crivez un programme Java
qui prend en argument un fichier de donnes et applique lalgorithme avec diffrentes graines, et retourne pour
chaque valeur lerreur "SquaredError". Vous pouvez retournez la meilleure segmentation.
Un autre inconvnient de lalgorithme K-Means est de devoir fixer le nombre de clusters. crivez un programme
qui prend en argument un fichier de donnes et qui applique lalgorithme avec diffrents nombres de clusters.
Pour chaque valeur, vous pourrez appliquer lalgorithme avec diffrentes graines et prendre lerreur moyenne.
Affichez les diffrentes erreurs moyennes pour chaque valeur de nombre de clusters (k). Testez sur les exemples
prcdents. Que constatez vous ? Cette approche peut-elle vous aider trouver le nombre idal de clusters
pour le jeu de donnes considr ?
Remarque : pour interprter plus facilement les rsultats, on peut visualiser le graphe de la fonction qui associe lerreur moyenne au nombre de clusters. Pour cela, vous pouvez utiliser gnuplot. Il suffit de crer un fichier contenant les valeurs (une ligne par point de la forme x, y et sous gnuplot de lafficher avec la commande
plot nomfichier with lines. Pour ceux qui sont sous Windows, il vous reste les outils de bureautique habituels.

14

Dtails sur lvaluation dune classification

Pour effectuer une classification, diffrents points doivent tre pris en compte :
Les effets des jeux de tests utiliss ;
Les effets du type de validation de modles :
Validation sur le jeu de donnes ayant servi lapprentissage ;
Validation sur un autre jeu de donnes (sur une deuxime partition des donnes) ;
Validation croise.
Nous allons au cours de cette sance et de la suivante voir linfluence de ces deux lments sur les rsultats de la
classification et sur la qualit des solutions obtenues (qualit relle et mesures fournies par les indicateurs).
A la fin de cette sance sur le Weka Experiment Environment, vous serez capables de concevoir des expriences
pour valuer les schmas des classifieurs sur de multiple jeux de donnes.

TIW2 2014/2015

Fouille de Donnes

15

TP1: Weka, (large) tour dhorizon

Introduction Weka Experimenter

Le Weka Experiment Environment permet lutilisateur de crer, lancer, modifier et analyser des expriences
de manire plus souple que lutilisation des classifieurs individuellement. Par exemple, lutilisateur peut crer une
exprience qui lance plusieurs classifieurs sur des sries de jeux de donnes et analyse les rsultats pour dterminer
si lun des classifieur est statistiquement meilleur que les autres. Nous allons utiliser linterface de lExperiment
Environment puisquil fournit plus de flexibilit lutilisateur pour dvelopper des expriences que cela est possible en
tapant les commandes dans une simple console (CLI). Pour commencer avec linterface de lExperiment Environment,
dmarrez Weka et cliquez sur Experimenter dans la fentre Weka GUI Chooser.

15.1

Dfinir une exprience

Quand lExperimenter est dmarr, la fentre Setup est affiche. La premire tape consiste choisir un jeu de
donnes de travail.
1. Cliquez sur New (en haut droite de la fentre Setup) pour initialiser une exprience. Ceci permet de fixer les
paramtres par dfaut pour lexprience. Pour dfinir le jeu de donnes (dataset) traiter par un classifieur,
slectionnez dabord Use relative paths dans la fentre Datasets (en bas gauche de la fentre Setup) et cliquez
sur Add new pour ouvrir une fentre de dialogue. Double-cliquez sur data pour voir les datasets disponibles ou
naviguez vers un autre rpertoire. Slectionnez le dataset Iris. Le nom du dataset est maintenant affich dans
la fentre Datasets de la fentre de Setup.
Se placer en mode advanced en haut de la fentre.

15.2

Sauvegarder les rsultats

Afin de ne pas refaire le mme travail plusieurs fois et de pouvoir exploiter les rsultats de lexprience, on peut
sauvegarder les rsultats de lexprience dans un fichier.
1. Pour identifier un fichier vers lequel les rsultats seront envoys, cliquez sur CSVResultListener dans la fentre
Destination (en haut de la fentre Setup). Se placer sur le paramtre de loutput outputFile. Cliquez sur ce
paramtre pour afficher une fentre de slection de fichiers. Tapez le nom du fichier de sortie (output), par
exemple Experiment.txt ou le slectionner via open, cliquez sur Select, et cliquez sur close (X). Vrifiez que
tous les fichiers de sortie sont situs dans votre rpertoire (et pas dans le rpertoire weka). Le nom du fichier
est affich dans la fentre outputFile. Cliquez sur OK pour fermer la fentre. Le nom du dataset est affich
dans la fentre Destination du Setup.

15.3

Sauvegarder la dfinition de lexprience

La dfinition dune exprience peut tre sauvegarde tout moment.


1. Slectionnez Save en haut de la fentre Setup. Tapez le nom du dataset avec lextension exp (e.g. Experiment.exp).
Rcupration : Lexprience peut tre rcuprer en slectionnant Open(en haut gauche de la fentre Setup) et
slectionnez Experiment.exp dans la fentre de dialogue.
Pensez sauvegarder les dfinitions de vos expriences de manire pouvoir les rutiliser plus tard.

15.4

Lancer une exprience

Sans autre indication, cest lexprience par dfaut est excute sur le dataset que vous avez choisi, soit, normalement le CrossValidationResultProducer avec un paramtre 10 pour lapprentissage alatoire et des tests effectus
sur le dataset choisi (Iris), utilisant le classifieur ZeroR.
Remarque : Il faut se placer en mode disabled dans le generator properties.
1. Pour lancer lexprience que vous venez de configurer, cliquez sur longlet Run en haut de la fentre Experiment
Environment et cliquez sur Start. Lexprience est excute.
Started
Finished
There were 0 errors

TIW2 2014/2015

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Si lexprience a t dfinie correctement, les 3 messages prsents ci-dessus sont affichs dans le Log Panel. Les
rsultats de lexprience sont sauvegards dans le fichier Experiment.txt. Cest une fichier de type .CSV (avec valeurs
spares par des ","). Il faut effectuer quelques modifications grce un diteur (de type textpad), et remplacer les
, par des ;, puis les . (sparateur de dcimales en anglais qui serait valu comme sparateur de millier par un
tableur) par des ,. Ensuite le fichier peut tre charg dans un classeur (Excel ou OpenOffice) pour tre analys.
1. Chargez ce fichier dans une feuille Excel. Spcifiez le dlimiteur " ;".
La ligne 1 contient les identifiants de colonnes (du rsultat de lexprience). Chaque ligne dfinit un jeu dapprentissage et un test. La ligne 2 de la feuille de donnes indique que pour le premier run de lexprience, le dataset Iris a
t utilis avec le classifieur ZeroR et que W instances ont t testes par le classifieur : X instances ont t classes
correctement, Y instances ont t mal classes, et Z instances nont pas pu tre classes.
1. Laquelle (lesquelles) de ces colonnes pourrai(en)t tre utile pour analyser lefficacit dun classifieur ?

15.5

Modifier les paramtres de lexprience

Les paramtres dune exprience peuvent tre modifis en cliquant sur la partie Result Generator (sous Destination
dans la fentre de Setup). Redimensionnez la fentre pour avoir tous les paramtres visibles. Le RandomSplitResultProducer ralise des apprentissages et tests de manire rpte. Le nombre de cas (ex- prim sous forme de pourcentage)
utiliser pour lapprentissage est donn dans le champ trainPercent. Le nombre de runs est spcifi dans la fentre
Setup dans le paramtre Runs. Un petit fichier daide peut tre affich en cliquant More dans le panneau About.
1. Cliquez sur lentre splitEvaluator pour afficher les proprits du SplitEvaluator. Cliquez sur lentre classifier
(ZeroR) pour afficher les proprits du classifieur. Ce classifieur na pas de proprits modifiables mais la
plupart des autres classifieurs en ont (e.g. j48.J48) et peuvent tre modifis par lutilisateur. Cliquez sur la liste
droulante pour le classifieur ZeroR (choose) et changez le en j48.J48 pour le classifieur arbre de dcision.
2. Vous pouvez modifier les paramtres, par exemple augmentez le minNumObj de 2 5 (i.e. spcifiez le nombre
minimum de cas dans les nuds feuilles).
3. Cliquez maintenant sur OK pour fermer la fentre. Le nom du nouveau classifieur est affich dans le panneau
Result generator. Vous pouvez relancer lexprience. Le fichier doutput (Experiment.txt) sera cras par les
rsultats du j48.J48.

15.6

Comparer des classifieurs

Pour comparer plusieurs classifieurs, nous devons les ajouter dans le panneau de Generator properties.
1. Pour commencer, modifiez lentre drop-down de Disabled Enabled dans le panneau Generator properties (en
bas droite de la fentre Setup). Cliquez sur Select property et slectionnez splitEvaluator de manire ce que
lentre classifier soit visible dans la liste des proprits. Cliquez sur Select. Le nom du classifieur est affich
dans le panneau Generator properties. Slectionnez ZeroR comme classifieur. Puis utilisez le bouton Add pour
lajouter lexprience. Pour ajouter un autre classifieur, cliquez sur le nom du classifieur pour afficher sa fentre
de proprits. Cliquez sur la liste droulante et slectionnez j48.J48 , le classifieur arbre de dcision. Le nouveau
classifieur est ajout dans le panneau Generator properties. Cliquez sur Add pour lajouter. Lancez lexprience
et regardez le fichier rsultat Experiment.txt. Vous verrez que les rsultats ont t gnrs partir des deux
classifieurs. Pour ajouter dautres classifieurs, rptez le procd. Pour enlever un classifieur, slectionnez le en
cliquant dessus et cliquez Delete.

15.7

Ajouter des jeux de donnes

Le(s) classifieur(s) peuvent tre lancs sur un nombre quelconque de datasets la fois. Les datasets sont ajouts
en cliquant sur Add new dans le panneau Datasets (en bas gauche de la fentre Setup). Les datasets sont effacs
de lexprience en slectionnant le dataset voulu et en cliquant sur Delete Selected.

16

Les diffrentes mthodes de validation de modles

Il existe diffrentes mthodes de validation de modles en Weka :


Supplied test set (avec paramtre set - choix du jeu de donnes pour la validation) : consiste valuer le modle
sur un autre jeu de donnes (a priori diffrent de celui utilis pour construire le modle)

TIW2 2014/2015

10

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Cross-validation (avec paramtre folds) : consiste diviser les donnes en n groupes. On construit les modles
sur n-1 groupes et on les teste sur le nime groupe. Puis on change de groupe test et on rpte le mme
procd jusqu avoir ralis toutes les combinaisons. On considre alors la moyenne des validations comme la
validation finale.
Percentage split (avec paramtre pourcentage) : consiste utiliser un certain pourcentage des donnes pour
construire le modle et lautre partie pour le valider.

17

Analyser les rsultats avec Weka

En plus denvoyer les rsultats dune exprience dans un CSV Result Listener (fichier doutput), ces rsultats
peuvent galement tre envoys un InstancesResultListener et analyser par le Weka Experiment Analyser. Ceci
permettra de ne pas utiliser un logiciel tel quexcel (cf exercice prcdent) pour lanalyse des rsultats.
1. Cliquez sur la partie Result Listener du panneau Destination et slectionnez InstancesResultListener. Noubliez
pas de vous placer en mode advanced (en haut de la fentre). Spcifiez le nom du result output. Loutput sera
sous un format dataset, donc spcifiez lextension arff (e.g. Experiment4.arff).
Une fois encore assurez-vous que les fichiers doutput sont enregistrs dans votre rpertoire personnel. Loutput cr
avec le InstancesResultListener est dans un format arff de type :
@relation InstanceResultListener
@attribute Key_Dataset {iris}
@attribute Key_Run {1,2,3,4,5,6,7,8,9,10}
@attribute Key_Scheme {weka.classifiers.ZeroR}
@attribute Key_Scheme_options {}
@attribute Key_Scheme_version_ID {6077547173920530258}
@attribute Date_time numeric
@attribute Number_of_instances numeric
@attribute Number_correct numeric
@attribute Number_incorrect numeric
@attribute Number_unclassified numeric
@attribute Percent_correct numeric...
@data
Chacunes des instances de ce dataset reprsente les informations relatives un run (une ligne dans les tables
excel utilises prcdemment).
Le Weka Experiment Analyzer peut maintenant tre utilis pour effectuer le travail danalyse des rsultats des
expriences (envoys un InstancesResultListener).

18
18.1

Expriences
Premier pas

1. Dfinissez une exprience respectant les rgles suivantes :


(a) appliquant 10 runs rptitifs dapprentissage /test
(b) utilisant les datasets Iris et Soybean
(c) avec ZeroR, OneR et j48.J48
Une fois lexprience entirement configure, lancez celle-ci.
2. Pour analyser les rsultats, slectionnez longlet Analyse en haut de la fentre de lExperiment Environment.
(Notez que les rsultats doivent tre sous le format arff. Vous pouvez visualiser le fichier doutput gnr avec
un diteur de texte standard. ) Cliquez sur Experiment pour analyser les rsultats de lexprience courante. Le
nombre de lignes de rsultat disponibles (Got 30 results) est affich dans le panneau Source. Cette exprience
est compose de 10 runs, pour 3 classifieurs, pour 1 dataset, soit un total de 30 lignes de rsultats.
3. Quelles conclusions peuvent tre dduites propos des performances des classifieurs sur les diffrents datasets ?
4. En appuyant sur le bouton Select Base, slectionnez ZeroR comme tant le classifieur de base. Tous les
classifieurs seront compars ce classifieur de base. Slectionnez lattribut P ercentcorrect du champ Comparison
et cliquez sur Perform test pour gnrer une comparaison des 3 classifieurs.

TIW2 2014/2015

11

Fouille de Donnes

TP1: Weka, (large) tour dhorizon

Comprendre : Il existe une colonne pour chacun des classifieurs utiliss dans lexprience, et une ligne pour chacun
des datasets utiliss. Le pourcentage de "correction" pour chaque classifieur est affich pour chaque ligne
dataset : e.g. X% pour ZeroR, Y% pour OneR, et Z% pour j48.J48. Lannotation v ou * indique quun
rsultat spcifique est statistiquement meilleur (v) ou pire (*) que le classifieur de base (dans le cas prsent,
ZeroR) avec un niveau de signification prcis (ici 0.05).
Les rsultats de OneR et j48.J48 devraient normalement tre nettement meilleurs que la base de rfrence tabli
par ZeroR. En bas de chaque colonne (sauf pour la premire) on trouve un compteur (xx/ yy/ zz) du nombre
de lignes pour lequel le classifieur a t meilleur que (xx), le mme que (yy), ou pire que (zz) le classifieur de
base sur le dataset utilis dans le run.
Dans lexemple, il ny a quun seul dataset et OneR a t 1 fois meilleur que ZeroR et jamais quivalent ou
pire ZeroR (1/0/0) ; j48.J48 est galement meilleur que ZeroR sur le dataset. La valeur (10) au debut des
lignes iris prcise le nombre de runs de lexprience.
Lcart type de lattribut valu peut tre calcul en slectionnant la case std.deviations. En slectionnant
Number-correct en champ de comparaison et en cliquant sur Perform test, on gne ?re la moyenne du nombre
de correct sur lensemble des tests (sur un maximum de 51 cas de test, 34% des 150 cas dans le dataset Iris ).

18.2

Rang de test

1. Slectionnez Ranking grce au bouton Select base.


Ceci fournit le nombre de classifieurs que chaque classifieur "surpasse" ou inversement par lesquels il est surpass. Le rang de test classe les classifieurs en fonction de leur nombre total de "victoires" (>) et de "dfaites"
(<) contre les autres classifieurs. La premiere colonne (> <) fournit la diffrence entre le nombre de
"victoires" et le nombre de "dfaites".

18.3

Sauvegarder les rsultats

Les informations affiches dans le panneau Test output ( droite de la fentre) sont controles par lentre
actuellement slectionne dans le panneau Result list (en bas gauche de la fentre).
En cliquant sur lune des entres, les rsultats correspondant cette entre sont affichs. Les rsultats affichs
dans le panneau Test output peuvent tre sauvegards dans un fichier en cliquant sur Save output.
Un seul jeu de rsultats peut tre sauvegard la fois, mais Weka permet lutilisateur de sauvegarder tous les
rsultats dans un mme dataset en les sauvegardant un la fois et en utilisant loption Append au lieu de Overwrite
pour les sauvegarder.
Le choix de cette option vous est offert via une fentre de dialogue apparaissant en milieu dcran, aprs avoir
slectionn le fichier de sauvegarde.

19
19.1

Weka Analyser
Expriences avec la validation croise (Cross-Validation)

1. Pour passer dapprentissage et des tests alatoires (comme dans lexercice prcdent) des expriences par
validation croise, cliquez sur lentre Result generator. Cliquez sur la liste droulante en haut de la fentre et
slectionnez CrossValidationResultProducer.
La fentre contient maintenant les paramtres spcifiques pour la validation croise tels que le nombres de
partitions (folds). Lexprience par dfaut travaille avec une validation croise sur 10 partitions. Le panneau
Result generator indique maintenant que la validation croise sera utilise. Vous pouvez cliquer sur More pour
gnrer de brefs descriptions du producteur de rsultats par validation croise. Tout comme le RandomSplitResultProducer, de nombreux classifieurs peuvent tre lancs pendant la validation croise en les ajoutant au
panneau Generator properties.
2. Dfinissez une exprience respectant les rgles suivantes :
10 runs de 10 partitions pour la validation croise ;
utilisant 3 datasets (e.g. Iris, Labor, et Weather) ;
avec 3 mthodes diffrentes dont j48.J48.
Faites en sorte de pouvoir analyser le fichier automatiquement.

TIW2 2014/2015

12

Fouille de Donnes

19.2

TP1: Weka, (large) tour dhorizon

AveragingResultProducer

Nous allons utiliser en alternative au CrossValidationResultProducer, le AveragingResultProducer.


Ce "producer" de rsultats fournit la moyenne dun jeu de tests (gnralement des runs de validation croise).
1. Cliquez sur le panneau Result Generator et slectionnez AveragingResultProducer dans la liste droulante.
Tout comme pour les autres "producers", dautres classifieurs peuvent tre dfinis. Quand le AveragingResultProducer est utilis, la proprit classifier est situe plus loin dans la hirarchie de Generator properties.
Avec expectedResultsPerAverage fix 10, lexprience consistera en 10 runs de 10 partitions de validation
croise. Chaque run de 10 partitions de validation croise est alors moyenn, produisant une ligne de rsultat
pour chaque run (au lieu dun rsultat par ligne pour chaque partition dans lexemple prcdent utilisant le
CrossValidationResultProducer).
2. Rptez lexercice de la Section Cross-Validation en utilisant maintenant le AveragingResultProducer.
3. Pour chacun des classifieurs :
Effectuez une analyse de leur performance les uns par rapport aux autres.
4. Dfinissez une exprience pour comparer 3 classifieurs (IBK, J48 et OneR) par rapport au P ercentcorrect , sur les
datasets Iris et Soybean. Souvenez-vous dutiliser le InstancesResultListener et de sauvegarder les output dans
un format arff (disons Experiment5.arff). Une fois les expriences effectues, utilisez les utilitaires de Experiment
Environement dans la partie Analyse. Pouvez-vous faire des commentaires de significations statistiques ? Vrifiez
votre rponse en slectionnant Summary comme base de Test et en appuyant sur Perform test. Ceci vous fournit
une matrice rsumant lanalyse de lexprience.
Comprendre : Comprendre : Par exemple, une ligne (- 1 1) indique que les classifieurs lis aux colonnes "b"
et "c" sont meilleurs que celui li la ligne "a". Une entre 0 indique quil ny a pas de diffrence
significative entre le classifieur li la ligne et celui li la colonne.
5. Y-a-t-il des diffrences significatives par rapport au temps dapprentissage et de test entre les classifieurs tests ?
Comment trouver cette information ? Indice : Modifier la slection du "comparison field".

20

Exploiter les rsultats de faon automatique

Vous avez d remarquer que les rsultats des expriences sont stocks dans des fichiers arff. Rien ne vous empche
danalyser ces rsultats.
1. Appliquez une mthode de clustering sur les rsultats de lexprience.
2. Interprtez les regroupements.

21

Knime

Lors de la prochaine sance, nous utiliserons la plateforme Knime qui subsume Weka, R et possde beaucoup
plus de fonctionnalits que Weka. Lune de ses principales caractristiques est la dfinition de workflow.
Veillez tlcharger et installer Knime (https://www.knime.org/) avant la prochaine sance.

TIW2 2014/2015

13

You might also like