0% ont trouvé ce document utile (0 vote)
50 vues8 pages

TP 1 Weka

Ce document présente un TP sur l'utilisation de WEKA, une plateforme de Data Mining et de Machine Learning. Les étudiants apprendront à manipuler des algorithmes de classification et de génération de règles d'association, ainsi qu'à installer et utiliser WEKA pour analyser des données. Des exemples pratiques sont fournis, notamment l'utilisation de fichiers ARFF et l'application de filtres pour la transformation des données.

Transféré par

fraude1337
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
50 vues8 pages

TP 1 Weka

Ce document présente un TP sur l'utilisation de WEKA, une plateforme de Data Mining et de Machine Learning. Les étudiants apprendront à manipuler des algorithmes de classification et de génération de règles d'association, ainsi qu'à installer et utiliser WEKA pour analyser des données. Des exemples pratiques sont fournis, notamment l'utilisation de fichiers ARFF et l'application de filtres pour la transformation des données.

Transféré par

fraude1337
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

EPITA 2025 - 2026

École Pour l’Informatique Bachelor Cyber Security


et les Techniques Avancées Introduction au Machine Learning

TP 01 : Weka, prise en main et (large) tour d’horizon

Version préliminaire, merci de signaler toute coquille ou erreur à [email protected]


Preliminary version, please report any typos or errors to [email protected]

1 Introduction au TP : prise en main de WEKA


Cette séance a pour objectif de vous familiariser avec WEKA, une plateforme libre et
gratuite de Data Mining et de Machine Learning développée en Java. Vous explorerez
plusieurs algorithmes, notamment Apriori pour la génération de règles d’association,
ainsi que diverses techniques de classification.
Un compte rendu est attendu à l’issue de ce travail. Il est fortement recommandé de
terminer ce TP avant la prochaine séance.
Le travail peut être réalisé individuellement (monôme) ou en groupe (binôme ou tri-
nôme). Il doit être entamé pendant la séance et finalisé à domicile, puis remis à votre
enseignant avant ou au plus tard lors de la prochaine séance de TP.

2 Présentation de WEKA
WEKA 1 est un environnement complet pour l’analyse de données et la modélisation
prédictive. Il propose :
— une interface graphique conviviale,
— une large collection d’algorithmes pour le prétraitement, la classification, la
régression, le clustering, et la visualisation,
— une documentation complète pour l’intégration dans des programmes Java.
Ses principaux atouts sont :
1. Accessibilité : logiciel libre distribué sous licence GNU GPL ;
2. Portabilité : entièrement écrit en Java, il fonctionne sur la plupart des systèmes
d’exploitation modernes ;
3. Richesse fonctionnelle : intègre de nombreux outils standards d’exploration
de données ;
4. Facilité d’utilisation : adapté aux débutants grâce à son interface graphique.
Toutes les techniques de WEKA reposent sur l’hypothèse que les données sont dis-
ponibles sous forme de fichier plat ou de relation binaire, avec des attributs fixes (nu-
mériques, symboliques, etc.).
1. https://ml.cms.waikato.ac.nz/weka/

Nida MEDDOURI Introduction au Machine Learning Page 1


3 Installation et modes d’utilisation
WEKA est disponible gratuitement à l’adresse : www.cs.waikato.ac.nz/ml/
weka Il est compatible avec Windows, macOS (Intel/ARM), Unix et autres plate-
formes.
Ce logiciel est développé en parallèle avec le livre : Data Mining: Practical Machine
Learning Tools and Techniques par Ian H. Witten, Eibe Frank, Mark A. Hall, Christo-
pher J. Pal et James Foulds.
WEKA peut être utilisé de plusieurs façons :
— via son interface graphique (utilisée dans ce TP),
— en ligne de commande,
— par programmation Java en intégrant ses classes dans vos projets (ce point
pourra être abordé dans un TP ultérieur).
Veuillez télécharger et installer WEKA via ce lien : https://waikato.github.io/weka-
wiki/downloading_weka/ Ce TP n’est pas la seule source d’information sur le logi-
ciel WEKA. WEKA est livré avec une aide intégrée et comprend un manuel com-
plet. Pour une introduction aux techniques d’apprentissage automatique implémen-
tées dans WEKA, ainsi qu’au logiciel lui-même, il est recommandé de consulter le livre
Data Mining: Practical Machine Learning Tools and Techniques et son annexe en ligne
gratuite sur l’environnement WEKA, qui offre une vue d’ensemble du logiciel. En lien
étroit avec le livre, il existe également des cours en ligne gratuits sur l’exploration
de données avec les techniques d’apprentissage automatique de WEKA. Une liste de
sources d’information sur WEKA est fournie ci-dessous :
— L’annexe en ligne The Weka Workbench, distribuée gratuitement au format
PDF, pour la quatrième édition du livre Data Mining: Practical Machine Lear-
ning Tools and Techniques.
— Le manuel pour Weka 3.8 et le manuel pour Weka 3.9, inclus dans la distribution
du logiciel lors du téléchargement.
— La Javadoc pour Weka 3.8 et la Javadoc pour Weka 3.9, extraites directement
du code source, fournissant des informations sur l’API et les paramètres pour
l’utilisation en ligne de commande de Weka.
— Les vidéos et diapositives des cours en ligne Data Mining with Weka, More
Data Mining with Weka, et Advanced Data Mining with Weka.

4 Premiers pas
WEKA est désormais installé sur votre ordinateur. Après son lancement, la fenêtre in-
titulée WEKA GUI Chooser s’affiche : sélectionnez l’option Explorer. Une nouvelle
fenêtre, nommée WEKA Knowledge Explorer, apparaît alors et propose six onglets
principaux :
— Preprocess : permet de sélectionner un fichier, d’inspecter et de préparer les
données.
— Classify : offre la possibilité de choisir, d’appliquer et d’évaluer différents al-
gorithmes de classification supervisée.
— Cluster : sert à sélectionner, appliquer et tester des algorithmes de regroupe-
ment (clustering).
— Associate : permet de générer des règles d’association à partir des données.
— Select Attributes : facilite la sélection des attributs les plus pertinents pour
l’analyse.

Nida MEDDOURI Introduction au Machine Learning Page 2


— Visualize : propose des outils pour visualiser certains attributs en fonction
d’autres, généralement en deux dimensions.

5 Les données
Les données utilisées avec WEKA sont au format ARFF (Attribute-Relation File For-
mat). Des exemples de jeux de données sont disponibles dès l’installation de WEKA.
Vous pouvez ouvrir l’un de ces fichiers exemples dans un éditeur pour examiner sa
structure : le format ARFF est simple et il est facile de convertir des données, par
exemple issues d’un tableur, vers ce format. (Un convertisseur du format CSV vers
ARFF est d’ailleurs inclus dans WEKA.)
Dans l’onglet Preprocess, cliquez sur Open File et ouvrez, par exemple, le fichier
iris.arff. Ce fichier contient la description de 150 spécimens d’iris appartenant à
trois espèces différentes. Chaque spécimen est décrit par quatre attributs numériques
(dimensions des sépales et des pétales) et un cinquième attribut correspondant à la
classe de l’exemple (c’est-à-dire l’espèce d’iris). Pour chaque attribut, il est possible
d’obtenir, en cliquant dessus dans la sous-fenêtre Attributes, des statistiques de base
sur la répartition des valeurs (affichées dans la sous-fenêtre Selected Attribute).
Enfin, différents filtres peuvent être appliqués aux données.

6 Visualisation des données


Pour une première exploration des données, rendez-vous dans la fenêtre Visualize.
Vous y trouverez un ensemble de 25 graphiques (chacun pouvant être agrandi d’un
simple clic), représentant différentes vues de l’ensemble des exemples selon deux di-
mensions choisies, la couleur des points indiquant leur classe.
Sur chaque graphique, chaque point correspond à un exemple. En cliquant sur un
point, vous pouvez afficher le descriptif détaillé de l’exemple sélectionné. La couleur
du point indique sa classe, précisée dans la sous-fenêtre Class colour. Par défaut, le
graphique n’est pas très informatif, car les axes représentent simplement le numéro
de l’exemple.
1. Modifiez les axes pour afficher la largeur des pétales en abscisse et la longueur
des sépales en ordonnée.
2. Proposez un ensemble de deux règles simples permettant de classer les exemples
selon leur genre : quelle erreur commettriez-vous ? Les petits rectangles situés
à droite de la fenêtre illustrent la distribution des exemples pour chaque attri-
but, en fonction de la couleur (classe ou attribut). Un clic gauche sur l’un de
ces rectangles permet de le sélectionner comme axe des X, un clic droit comme
axe des Y.
3. En plaçant la classe sur l’axe des X, identifiez les attributs qui, pris isolément,
discriminent le mieux les exemples. Si les points sont trop rapprochés, le po-
tentiomètre Jitter permet de les disperser légèrement pour une meilleure vi-
sualisation : cela est utile lorsque de nombreux points se superposent dans le
plan.

Nida MEDDOURI Introduction au Machine Learning Page 3


7 Un premier exemple de règle d’association
1. Sélectionnez le fichier weather.nominal.arff, qui constitue l’exemple standard
d’une activité sportive en plein air, où tous les attributs ont été discrétisés. Les
algorithmes de recherche de règles d’association sont accessibles via l’onglet
Associate.
2. Choisissez l’algorithme Apriori.
3. Vérifiez le bon fonctionnement en lançant l’algorithme sans modifier les para-
mètres par défaut.
4. Analysez les informations retournées par l’algorithme :
— quelles règles d’association sont extraites ?
— comment sont-elles présentées ?
En effectuant un clic droit dans la fenêtre située en face du bouton Choose, vous
accédez aux paramètres de l’algorithme sélectionné. Le bouton More permet d’obtenir
une description détaillée de chaque option :
— delta : fait décroître le support minimal de ce facteur, jusqu’à ce que le nombre
de règles demandé soit atteint ou que la valeur minimale du support (lowerBoundMinSupport)
soit atteinte.
— lowerBoundMinSupport : valeur minimale du support (minsup) recherchée.
Le support initial diminue progressivement selon la valeur de delta.
— metricType : mesure utilisée pour classer les règles. Supposons que L désigne
la partie gauche de la règle et R la partie droite. Quatre mesures sont dispo-
nibles :
— Confiance (Confidence) : Mesure la probabilité que la conclusion (B) soit
vraie lorsque la condition (A) est vraie.

Support(A ∩ B)
Confiance(A ⇒ B) =
Support(A)
.
— Lift (Amélioration) : Évalue à quel point la présence de A augmente la
probabilité d ?observer B, par rapport à une situation d’indépendance.

Confiance(A ⇒ B)
Lift(A ⇒ B) =
Support(B)
— Leverage (Portée) : Mesure la différence entre la proportion d’exemples où
A et B apparaissent ensemble et la proportion attendue si A et B étaient in-
dépendants.

Leverage(A ⇒ B) = Support(A ∩ B) − Support(A) × Support(B)


— Conviction : Indique à quel point la présence de A rend improbable l’ab-
sence de B, comparé à l’indépendance.

1 − Support(B)
Conviction(A ⇒ B) =
1 − Confiance(A ⇒ B)
— minMetric : valeur minimale de la mesure choisie, en dessous de laquelle au-
cune règle n’est retenue.
— numRules : nombre de règles à générer.

Nida MEDDOURI Introduction au Machine Learning Page 4


— removeAllMissingCols : supprime les colonnes dont toutes les valeurs sont
manquantes.
— significanceLevel : niveau de signification pour le test statistique.
— upperBoundMinSupport : valeur initiale du support.
Sur le fichier weather.nominal.arff, comparez les règles produites selon la mesure choi-
sie et expérimentez avec les différents paramètres.

8 Un deuxième exemple de règles d’association


Dans la suite, nous utiliserons les données issues de la publication de Moro, S., Rita, P.,
& Cortez, P. (2014), intitulée « Bank Marketing » et disponible à UCI Machine Learning
Repository. Les données concernent des campagnes de marketing direct menées par
une institution bancaire portugaise. Les campagnes marketing étaient réalisées par
téléphone. Souvent, plusieurs contacts avec un même client étaient nécessaires afin
de déterminer si le produit (dépôt à terme bancaire) serait souscrit (« yes ») ou non («
no »).
Il existe quatre jeux de données :
1. bank-additional-full.csv : contient tous les exemples (41 188) et 20 variables
d’entrée, ordonnés par date (de mai 2008 à novembre 2010).
2. bank-additional.csv : contient 10 % des exemples (4 119), sélectionnés aléatoire-
ment à partir du premier jeu, et 20 variables d’entrée.
3. bank-full.csv : contient tous les exemples et 17 variables d’entrée, ordonnés par
date (ancienne version du jeu de données avec moins de variables).
4. bank.csv : contient 10 % des exemples et 17 variables d’entrée, sélectionnés aléa-
toirement à partir du troisième jeu (ancienne version du jeu de données avec
moins de variables).
Les plus petits jeux de données sont fournis pour tester des algorithmes d’apprentis-
sage automatique plus exigeants en ressources (par exemple, SVM).
L’objectif de classification est de prédire si le client souscrira (« yes »/« no ») un dépôt
à terme (variable y).

8.1 Transformation des données


Récupérez l’un des quatre fichiers cités précédemment 2 et revenez à la fenêtre Pre-
process.
1. Commencez par ouvrir le fichier choisi : il vous sera proposé d’utiliser un
convertisseur, acceptez cette option. WEKA met à disposition des filtres per-
mettant de sélectionner ou d’exclure certains exemples, ainsi que de modifier,
supprimer ou ajouter des attributs. La sous-fenêtre Filters permet de manipu-
ler ces filtres.
Le fonctionnement général est le suivant :
— Sélectionnez un filtre dans le menu déroulant en haut de la sous-fenêtre,
configurez ses options, puis ajoutez-le à la liste des filtres avec le bouton
Add.
— Appliquez les filtres sélectionnés à l’aide du bouton Apply Filters.
2. https://archive.ics.uci.edu/dataset/222/bank+marketing

Nida MEDDOURI Introduction au Machine Learning Page 5


— Remplacez le fichier initial par les données transformées grâce au bouton
Replace.
— Le fichier transformé devient alors votre nouveau fichier de travail.
— Utilisez le bouton Save pour enregistrer les données modifiées dans un nou-
veau fichier.
2. Pouvez-vous lancer l’algorithme Apriori ? Pourquoi ou pourquoi pas ?

8.2 Sélection des attributs


Les jeux de données comportent souvent des attributs inutiles ou redondants. Il est
possible de les supprimer manuellement, à condition de bien connaître le domaine
d’application. Une autre approche consiste à exécuter un algorithme de data mining
et à observer les attributs effectivement utilisés :
— soit ces attributs sont pertinents et il est important de les conserver,
— soit ils sont tellement corrélés à la classe qu’ils déterminent à eux seuls la dé-
cision (par exemple, un attribut qui serait une copie de la classe).
WEKA propose une automatisation de cette sélection grâce au filtre AttributeSelec-
tionFilter, qui permet d’identifier les attributs les plus pertinents selon différentes mé-
thodes de recherche (search) et plusieurs mesures de pertinence (eval).
Dans le cas présent, l’attribut day peut être ignoré pour l’analyse : supprimez-le.

8.3 Discrétisation
Certains algorithmes nécessitent des attributs discrets pour fonctionner, tandis que
d’autres n’acceptent que des attributs continus (comme les réseaux de neurones ou
les plus proches voisins). D’autres encore peuvent traiter indifféremment des attributs
des deux types.
WEKA propose des filtres permettant de discrétiser des valeurs continues. Le filtre
DiscretizeFilter permet de transformer un attribut continu en attribut discret selon
plusieurs méthodes :
— Découpage de l’intervalle des valeurs possibles en intervalles de taille égale.
— Découpage en intervalles contenant chacun le même nombre d’exemples.
— Définition manuelle du nombre d’intervalles (bins).
— Recherche automatique du nombre optimal de sous-intervalles par le programme.
Dans ce jeu de données, plusieurs attributs sont numériques : age, balance, day 3 , du-
ration, compaign, pdays et previous.
1. Discrétisez les attributs age et balance 4 en utilisant le filtre de WEKA, en fixant
le nombre d’intervalles à 10. Enregistrez le fichier transformé, par exemple sous
le nom bank1.arff.
2. L’attribut campaign 5 est numérique mais ne prend que 31 valeurs. Pour le dis-
crétiser, vous pouvez soit utiliser le filtre, soit effectuer la modification manuel-
lement dans le fichier ARFF.
3. Remarque : si vous éditez directement le fichier, profitez-en pour rendre les
données plus lisibles, par exemple en traduisant les noms des attributs ou en
nommant explicitement les intervalles issus de la discrétisation.
3. Supprimé précédemment
4. "Average yearly balance"
5. "Number of contacts performed during this campaign and for this client (numeric, includes last
contact)"

Nida MEDDOURI Introduction au Machine Learning Page 6


8.4 Apriori vs Tertius
Enregistrez le résultat de vos transformations dans le fichier bankModified.arff :
c’est ce fichier qui servira à la génération des règles d’association.
1. Appliquez l’algorithme Apriori et tentez d’interpréter les règles produites. Ex-
périmentez avec les différents paramètres.
— Comment le temps d’exécution évolue-t-il en fonction de ces paramètres ?
— Quels sont les paramètres les plus critiques pour la performance ou la qualité
des règles ?
2. Utilisez ensuite l’algorithme Tertius 6 . Que remarquez-vous concernant la forme
des règles générées ?

8.5 Classification avec Apriori


Reprenez le fichier iris.arff ; discrétisez les attributs continus.
1. Appliquez ensuite l’algorithme Apriori. Examinez les règles produites avec
comme conclusion uniquement la classe : correspondent-elles à votre intui-
tion ?
2. Comparez avec ce qui est produit par un algorithme de classification, en choi-
sissant par exemple dans trees, J48 qui construit un arbre de décision.

9 Promotions de Noël et épicerie de nuit


Le magasin bio du boulevard Perelles souhaite, à l’occasion de la rentrée, lancer une
opération de promotion ciblée. Sa responsable, passionnée par l’analyse de données,
vous demande d’utiliser les règles d’association pour identifier des combinaisons de
produits intéressantes à mettre en avant. Pour cela, elle met à votre disposition le
relevé des achats réalisés par ses clients au cours du dernier trimestre :

Table 1 – Exemple de relevé d’achats du trimestre


Id Client Produit A Produit B Produit C Produit D Produit E
1 X X X
2 X X X
3 X
4 X X X
5 X X X X X
6 X X
7 X X X
8 X X

1. Générer un fichier ARFF contenant les données du bilan d’achat.


2. Extraire les règles d’association avec des supports de 0.25, 0.5, 0.75 puis de 0.1.
3. Que pouvez-vous conseiller comme promotion au patron ?
6. Pensez à la fonctionnalité "Package Manager" si Tertius n’est pas présent par défaut

Nida MEDDOURI Introduction au Machine Learning Page 7


10 Mise en œuvre
Rendez-vous sur le site UCI Machine Learning Repository, choisissez un jeu de don-
nées et importez-le dans WEKA afin de le visualiser et d’extraire des règles d’associa-
tion

11 API Weka (Bonus)


Il est possible d’utiliser directement les algorithmes sur des jeux de données en les
appelant à partir de votre propre code Java.
1. Étudiez l’API de WEKA, notamment pour les règles d’association. Puis, dans un
programme Java, automatisez directement ce que vous avez fait via l’interface
graphique en appelant les algorithmes nécessaires.
2. Utilisez le code précédent pour étudier le temps d’exécution de l’algorithme
Apriori en fonction du seuil de support et du seuil de confiance (vous pouvez
générer des graphes à l’aide de Gnuplot ou Google Colab.

Nida MEDDOURI Introduction au Machine Learning Page 8

Vous aimerez peut-être aussi