Machine Learning avec Weka - Module X8II090

publicité
Machine Learning avec Weka
Module X8II090 - Cours 1
Florian Boudin
Département informatique, Université de Nantes
Révision 1 du 4 janvier 2012
Plan
Préambule
Introduction
Traitement des données
Format d’entrée
Pré-traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 2 sur 53
Objectifs et notions abordées
I
Objectif principal : être capable d’utiliser le toolkit Weka
I
I
Interface graphique
Outil en ligne de commande
I
Ce cours reprend les exemples ainsi que la méthodologie du livre
Data Mining par Witten & Frank
I
Site web du cours
http://www.florianboudin.org/cours/weka/
04 jan 2012 / Rév. 1 - page 3 sur 53
Motivations
I
La fécondation in vitro (procréation médicalement assistée)
I
I
I
Collecte d’ovules et de spermatozoïdes
Fécondation de plusieurs embryons
Comment choisir les "meilleurs" embryons à implanter ?
I
I
Nombre de cellules, régularité, fragmentation, ... (± 60 critères)
L’éleveur de Nouvelle-Zélande
I
I
Habituellement 20% des vaches sont abattues en fin de saison
Comment choisir les vaches pour l’abattoir ?
I
Reproduction, quantité et qualité du lait, problèmes de santé, âge,
amour de l’éleveur, ... (± 700 critères)
I
Autres exemples : reconnaissance du code postal, filtrage
anti-spams, radars automatiques
I
L’exploration de données et l’apprentissage sont partout !
04 jan 2012 / Rév. 1 - page 4 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 5 sur 53
D’ou vient le nom Weka ?
Alan Vernon via Wikimedia Commons
04 jan 2012 / Rév. 1 - page 6 sur 53
Présentation de Weka (1)
I
Weka (Waikato Environment for Knowledge Analysis)
Environnement Waikato pour l’analyse de connaissances
I
Suite de logiciels d’apprentissage automatique et d’exploration de
données écrite en Java
I
Développée à l’université de Waikato en Nouvelle-Zélande
I
Historique
I
I
I
I
1993,
1997,
2005,
2006,
Développement de la version originale en C
Re-développement à partir de zéro en Java
Weka reçoit le SIG KDD award
Pentaho Corporation acquiert une licence exclusive
04 jan 2012 / Rév. 1 - page 7 sur 53
Présentation de Weka (2)
I
2 848 660 downloads sur Sourceforge (2011)
I
Disponible pour toutes les plateformes
I
I
Windows x86, Windows x64, Mac OS X, Linux etc.
Documentation riche et communauté large
I
I
I
I
I
Le livre Data Mining : Practical Machine Learning Tools and
Techniques (troisième édition)
API http://weka.sourceforge.net/doc.stable/
Wiki http://weka.wikispaces.com/
FAQ http://weka.wikispaces.com/FAQ
Tutoriels, mailing list, etc.
04 jan 2012 / Rév. 1 - page 8 sur 53
Que contient le toolkit Weka ?
I
Outils de pré-traitement des données (filtering)
I
I
Algorithmes pour l’exploration de données
I
I
Clustering, classification, régression, etc.
Analyse de résultats
I
I
Sélection, transformation, combinaison d’attributs, normalisation,
re-échantillonnage, etc.
Évaluation de performances, comparaison d’algorithmes, etc.
Plusieurs interfaces
I
I
Graphiques (Explorer, Experimenter et Knowledge Flow )
En ligne de commande (CLI)
04 jan 2012 / Rév. 1 - page 9 sur 53
Aperçu de l’interface de Weka
04 jan 2012 / Rév. 1 - page 10 sur 53
Utilisation de l’outil en ligne de commande
I
L’interface graphique est suffisante pour les premières expériences
I
L’interface en CLI est recommandée pour une utilisation plus
poussée
I
I
I
Elle offre des fonctionnalités supplémentaires
Elle utilise beaucoup moins de mémoire
Penser à :
I
I
Augmenter le maximum heap size de Java (-Xmx1024M)
Ajouter weka.jar dans CLASSPATH
04 jan 2012 / Rév. 1 - page 11 sur 53
Plan
Préambule
Introduction
Traitement des données
Format d’entrée
Pré-traitement des données
Classification
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 12 sur 53
Format d’entrée (1)
I
Le format d’entrée par défaut de Weka est le ARFF (Attribute
Relation File Format)
I
D’autres formats peuvent être importés
I
I
CSV, binaire, BDD SQL (avec JDBC), à partir d’une URL, etc.
Caractéristiques du format de fichier ARFF :
1. Les commentaires sont précédés de %
% Ceci est un commentaire dans un ensemble
% de donnees.
2. Définition du nom de l’ensemble de données avec @relation
I
Le nom doit être aussi compréhensible que possible
@relation temperatureMaison_14jours
04 jan 2012 / Rév. 1 - page 13 sur 53
Format d’entrée (2)
3. Définition des features avec @attribute
I
Attributs nominaux suivis des valeurs entre accolades
@attribute outlook {sunny, overcast, rainy}
I
Attributs numériques avec real
@attribute temperature real
I
Attributs chaines avec string, les valeurs doivent être entre doubles
guillemets "blah blih bloh"
@attribute unTexte string
I
Attributs dates avec date (yyyy-MM-dd-THH :mm :ss)
@attribute uneDate date
4. @data signale le début des instances
04 jan 2012 / Rév. 1 - page 14 sur 53
Exemple de fichier ARFF
% Ensemble de donnees sur la meteo
@relation weather
% Definition des features
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
% Debut des instances
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
...
04 jan 2012 / Rév. 1 - page 15 sur 53
Format d’entrée (3)
I
Par défaut, le dernier attribut est considéré comme la variable de
classe / à prédire
I
I
En CLI, la commande -c permet de choisir la variable à prédire,
e.g. -c 1 spécifie le premier attribut
Dans le cas de données éparses, il est possible de compresser les
données en ne représentant pas explicitement les valeurs 0
I
Le format est <index><espace><valeur>
% Instances contenant beaucoup de 0
0, 6, 0, 0, 0, 0, 3, 0, 0, 0, "class A"
0, 0, 0, 4, 0, 0, 0, 0, 0, 0, "class B"
% Instances compressees avec des accolades
{1 6, 6 3, 10 "class A"}
{3 4, 10 "class B"}
04 jan 2012 / Rév. 1 - page 16 sur 53
Format d’entrée (4)
I
Les outils de visualisation sont très utiles
I
I
I
ARFFviewer : visualisation, modification, tri, etc.
Explorer : chargement des données, histogrammes, etc.
Apprendre à voir les données
I
I
Les histogrammes et les courbes montrent les dépendances
Trop de données → prendre un extrait
Démonstration 1
I
I
I
Visualisation et modification du contenu d’un fichier ARFF
Chargement et visualisation des courbes
Conversion ARFF ⇔ CSV
04 jan 2012 / Rév. 1 - page 17 sur 53
Plan
Préambule
Introduction
Traitement des données
Format d’entrée
Pré-traitement des données
Classification
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 18 sur 53
Pré-traitement des données (1)
I
Les pré-traitements dans Weka sont effectués grâce aux filtres
I
Les filtres permettent de modifier les ensemble de données :
supprimer ou ajouter des attributs, ré-échantillonner, supprimer
des exemples, etc.
I
Le package weka.filters dispose de deux types de filtres
I
I
Filtres non supervisés
Filtres supervisés, i.e. tirant parti de l’information de la classe
I
Il existe des filtres pour les attributs et pour les exemples
I
Attention à l’évaluation des résultats, les filtres supervisés utilisent
les valeurs de classes et peuvent biaiser les résultats
04 jan 2012 / Rév. 1 - page 19 sur 53
Pré-traitement des données (2)
I
Plusieurs dizaines de filtres
I
I
I
I
I
I
I
Ajout, suppression et copie d’attributs (Add, Remove et Copy)
Ajout de bruit (AddNoise)
Fusion d’attributs (Merge)
Conversion (NominalToBinary, StringToBinary, etc.)
Anonymer (Obfuscate)
Méthode de discrétisation (Discretize)
Exemple d’application d’un filtre avec l’Exlorer et en CLI
04 jan 2012 / Rév. 1 - page 20 sur 53
Application d’un filtre : normalisation
04 jan 2012 / Rév. 1 - page 21 sur 53
Application d’un filtre : normalisation
04 jan 2012 / Rév. 1 - page 21 sur 53
Application d’un filtre : normalisation
04 jan 2012 / Rév. 1 - page 21 sur 53
Application d’un filtre : normalisation
Avec un clic droit sur le nom du filtre, il est possible d’obtenir plus de
détails sur son fonctionnement. Il est également possible de modifier
certains paramètres.
04 jan 2012 / Rév. 1 - page 21 sur 53
Application d’un filtre : normalisation
Le filtre a normalisé toutes les valeurs numériques de l’ensemble de
données dans l’intervalle [0, 1].
04 jan 2012 / Rév. 1 - page 21 sur 53
Application d’un filtre en CLI
I
Tous les filtres disposent des options -i et -o pour spécifier
l’ensemble de données d’entrée et de sortie
I
L’option -h permet d’obtenir la liste des options disponibles
I
Supprimer les deux premiers attributs d’un ensemble de données
java weka.filters.unsupervised.attribute.Remove
-R 1-2 -i data1.arff -o data2.arff
I
Créer un sous ensemble préservant la distribution des classes
java weka.filters.supervised.instance.Resample
-i data1.arff -o data1-5%.arff -c last -Z 5
04 jan 2012 / Rév. 1 - page 22 sur 53
Pré-traitement des données (3)
I
Le pré-traitement des données est très important, et il a un impact
majeur sur la qualité de l’apprentissage
Démonstration 2
I
I
Chargement des données
Application de filtres avec l’explorer (ajout de bruit, anonymer)
04 jan 2012 / Rév. 1 - page 23 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 24 sur 53
Les algorithmes de classification
I
Les classifieurs dans Weka sont des modèles pour prédire des
valeurs nominales ou numériques
I
Algorithmes de classification inclus
I
I
I
I
I
I
Arbres de décision
Classification bayésienne naïve
Machine à vecteurs de support (SVM)
Perceptron multi-couche
Réseau bayésien, etc.
Des meta-classifieurs
I
I
I
Combinaison
Bagging
Boosting, etc.
04 jan 2012 / Rév. 1 - page 25 sur 53
L’onglet Classify dans l’Explorer
04 jan 2012 / Rév. 1 - page 26 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Règles de classification
Classification Bayésienne probabiliste
Les arbres de décision
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 27 sur 53
Déduction de règles de classification
I
Trouver des règles de classification simples (1R pour 1-rule)
I
Idée
I
I
I
Une règle pour chaque attribut
Une branche pour chacune des valeurs des attributs
Pseudocode pour 1R
Pour chaque attribut
| Pour chaque valeur de cet attribut, creer une regle
| | Compter combien de fois chaque classe apparait
| | Trouver la classe la plus frequente
| | Creer une regle : attribut-valeur -> classe
| Calculer le taux d'erreur de la regle
Choisir les regles avec le plus petit taux d'erreur
04 jan 2012 / Rév. 1 - page 28 sur 53
Déduction de règles de classification
outlook {sunny,overcast,rainy}
temperature numeric
humidity numeric
windy {TRUE,FALSE}
play {yes,no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Attributs Règles
1
outlook
sunny → no
overcast → yes
rainy → yes
Erreurs Total
2/5
0/4
2/5
4/14
2 temperature 85 → no
83 → yes
...
0/1
0/1
...
?/14
96 → yes
95 → no
...
0/1
0/1
...
?/14
false → yes
true → no?
2/8
3/6
5/14
3
humidity
4
windy
?
choix aléatoire de la meilleur règle
04 jan 2012 / Rév. 1 - page 29 sur 53
Déduction de règles de classification
outlook {sunny,overcast,rainy}
temperature numeric
humidity numeric
windy {TRUE,FALSE}
play {yes,no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Attributs Règles
1
outlook
Erreurs Total
sunny → no
overcast → yes
rainy → yes
2/5
0/4
2/5
4/14
2 temperature 85 → no
83 → yes
...
0/1
0/1
...
?/14
96 → yes
95 → no
...
0/1
0/1
...
?/14
false → yes
true → no?
2/8
3/6
5/14
3
humidity
4
windy
?
choix aléatoire de la meilleur règle
04 jan 2012 / Rév. 1 - page 29 sur 53
Déduction de règles de classification
outlook {sunny,overcast,rainy}
temperature numeric
humidity numeric
windy {TRUE,FALSE}
play {yes,no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Attributs Règles
1
outlook
Erreurs Total
sunny → no
overcast → yes
rainy → yes
2/5
0/4
2/5
4/14
2 temperature 85 → no
83 → yes
...
0/1
0/1
...
?/14
96 → yes
95 → no
...
0/1
0/1
...
?/14
false → yes
true → no?
2/8
3/6
5/14
3
humidity
4
windy
?
choix aléatoire de la meilleur règle
04 jan 2012 / Rév. 1 - page 29 sur 53
Déduction de règles de classification
outlook {sunny,overcast,rainy}
temperature numeric
humidity numeric
windy {TRUE,FALSE}
play {yes,no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Attributs Règles
1
outlook
Erreurs Total
sunny → no
overcast → yes
rainy → yes
2/5
0/4
2/5
4/14
2 temperature 85 → no
83 → yes
...
0/1
0/1
...
?/14
96 → yes
95 → no
...
0/1
0/1
...
?/14
false → yes
true → no?
2/8
3/6
5/14
3
humidity
4
windy
?
choix aléatoire de la meilleur règle
I
Problème avec les attributs
numériques
04 jan 2012 / Rév. 1 - page 29 sur 53
Classification 1-R dans Weka
04 jan 2012 / Rév. 1 - page 30 sur 53
Discrétisation des données
I
Comment convertir les attributs numériques en attributs
nominaux pour pouvoir créer des règles ?
I
Il faut discrétiser les attributs numériques
64
yes
65
no
68
yes
69
yes
70
yes
71
no
72
no
72
yes
75
yes
75
yes
80
no
81
yes
83
yes
85
no
04 jan 2012 / Rév. 1 - page 31 sur 53
Discrétisation des données
I
Comment convertir les attributs numériques en attributs
nominaux pour pouvoir créer des règles ?
I
Il faut discrétiser les attributs numériques
64
yes
65
no
68
yes
69
yes
70
yes
71
no
72
no
72
yes
75
yes
75
yes
80
no
81
yes
83
yes
85
no
I
Création (automatique) de 8 catégories en découpant aux points
64.5, 66.5, 70.5, 72, 77.5, 80.5 et 84
I
1-R n’utilise qu’un attribut !
I
Utiliser tous les attributs, chacun contribuant à la décision
04 jan 2012 / Rév. 1 - page 31 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Règles de classification
Classification Bayésienne probabiliste
Les arbres de décision
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 32 sur 53
Ensemble de données weather.symbolic
@relation weather.symbolic
@attribute
@attribute
@attribute
@attribute
@attribute
outlook {sunny, overcast, rainy}
temperature {hot, mild, cool}
humidity {high, normal}
windy {TRUE, FALSE}
play {yes, no}
@data
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
overcast,hot,high,FALSE,yes
rainy,mild,high,FALSE,yes
rainy,cool,normal,FALSE,yes
rainy,cool,normal,TRUE,no
overcast,cool,normal,TRUE,yes
...
04 jan 2012 / Rév. 1 - page 33 sur 53
Classification Bayésienne probabiliste I
I
Méthode simple et intuitive basée sur le théorème de Bayes
P(H|E) =
I
I
P(E|H)P(H)
P(E)
Ou H est l’hypothèse à tester et E l’évidence associée à H, P(H) est
une probabilité a priori
Calcul des probabilités conditionnelles à partir des instances
I
I
P(E|H) → P(outlook : sunny|yes), P(windy : T RUE|yes), ...
P(H) → P(yes), P(no)
04 jan 2012 / Rév. 1 - page 34 sur 53
Classification Bayésienne probabiliste II
@data
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
overcast,hot,high,FALSE,yes
rainy,mild,high,FALSE,yes
rainy,cool,normal,FALSE,yes
rainy,cool,normal,TRUE,no
overcast,cool,normal,TRUE,yes
sunny,mild,high,FALSE,no
sunny,cool,normal,FALSE,yes
rainy,mild,normal,FALSE,yes
sunny,mild,normal,TRUE,yes
overcast,mild,high,TRUE,yes
overcast,hot,normal,FALSE,yes
rainy,mild,high,TRUE,no
P(outlook : sunny|yes) = 2/9
P(outlook : sunny|no) = 3/5
P(windy : T RUE|yes) = 3/9
...
P(yes) = 9/14
P(no) = 5/14
04 jan 2012 / Rév. 1 - page 35 sur 53
Classification Bayésienne probabiliste (2)
Outlook
Temperature
value yes no value yes no
Humidity
Windy
value yes no value yes no
Play
yes no
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
I
Un nouvel exemple arrive : ( sunny ; cool ; high ; true ; ? )
04 jan 2012 / Rév. 1 - page 36 sur 53
Classification Bayésienne probabiliste (2)
Outlook
Temperature
value yes no value yes no
Humidity
Windy
value yes no value yes no
Play
yes no
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
I
Un nouvel exemple arrive : ( sunny ; cool ; high ; true ; ? )
04 jan 2012 / Rév. 1 - page 36 sur 53
Classification Bayésienne probabiliste (2)
Outlook
Temperature
value
yes no value yes no
Humidity
Windy
value yes no value yes no
Play
yes
no
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
I
Un nouvel exemple arrive : ( sunny ; cool ; high ; true ; ? )
I
Vraisemblance de yes : 2/9 × 3/9 × 3/9 × 3/9 × 9/14 = 0.0053
04 jan 2012 / Rév. 1 - page 36 sur 53
Classification Bayésienne probabiliste (2)
Outlook
value
yes no
Temperature
value yes no
Humidity
value yes no
Windy
value yes no
Play
yes
no
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
I
Un nouvel exemple arrive : ( sunny ; cool ; high ; true ; ? )
I
I
Vraisemblance de yes : 2/9 × 3/9 × 3/9 × 3/9 × 9/14 = 0.0053
Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206
04 jan 2012 / Rév. 1 - page 36 sur 53
Classification Bayésienne probabiliste (2)
Outlook
value
yes no
Temperature
value yes no
Humidity
value yes no
Windy
value yes no
Play
yes
no
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
I
Un nouvel exemple arrive : ( sunny ; cool ; high ; true ; ? )
I
I
I
Vraisemblance de yes : 2/9 × 3/9 × 3/9 × 3/9 × 9/14 = 0.0053
Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206
Les nombres peuvent être changés en probabilités
I
I
Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%
Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%
04 jan 2012 / Rév. 1 - page 36 sur 53
Classification Bayésienne probabiliste (3)
I
Méthode simple et intuitive basée sur le théorème de Bayes
P(H|E) =
I
I
P(E|H)P(H)
P(E)
Ou H est l’hypothèse à tester et E l’évidence associée à H, P(H) est
une probabilité a priori
Reprise de l’exemple précédent
I
outlook : sunny ; temperature : cool ; humidity : high ; windy : true
P(yes|E) =
P(sunny|yes) × P(cool|yes) × P(high|yes) × P(true|yes) × P(yes)
P(E)
P(yes|E) =
2/9 × 3/9 × 3/9 × 3/9 × 9/14
P(E)
04 jan 2012 / Rév. 1 - page 37 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Règles de classification
Classification Bayésienne probabiliste
Les arbres de décision
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 38 sur 53
Les arbres de décision
I
Processus récursif
I
I
I
Sélectionner un attribut en
noeud racine et ajouter une
branche pour chacune des
valeurs possibles
Répéter le processus pour
chaque branche, utilisant
uniquement les attributs qui
atteignent la branche
Quel attribut choisir ?
I
Celui qui divise de la manière la
plus pure → mesure de pureté
04 jan 2012 / Rév. 1 - page 39 sur 53
Les arbres de décision
I
Processus récursif
I
I
I
Sélectionner un attribut en
noeud racine et ajouter une
branche pour chacune des
valeurs possibles
Répéter le processus pour
chaque branche, utilisant
uniquement les attributs qui
atteignent la branche
Quel attribut choisir ?
I
Celui qui divise de la manière la
plus pure → mesure de pureté
04 jan 2012 / Rév. 1 - page 39 sur 53
Les arbres de décision
I
Processus récursif
I
I
I
Sélectionner un attribut en
noeud racine et ajouter une
branche pour chacune des
valeurs possibles
Répéter le processus pour
chaque branche, utilisant
uniquement les attributs qui
atteignent la branche
Quel attribut choisir ?
I
Celui qui divise de la manière la
plus pure → mesure de pureté
04 jan 2012 / Rév. 1 - page 39 sur 53
Classification J48 dans Weka
04 jan 2012 / Rév. 1 - page 40 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Les algorithmes de classification dans Weka
Les méthodes de base
Entraînement et sauvegarde des modèles dans Weka
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 41 sur 53
Entraînement et sauvegarde des modèles (1)
04 jan 2012 / Rév. 1 - page 42 sur 53
Entraînement et sauvegarde des modèles (2)
I
L’option -t spécifie l’ensemble de données d’entraînement et -d
permet de sauvegarder le modèle construit
java weka.classifiers.trees.J48
-t train.arff -d j48.model
I
L’option -l permet de charger un modèle sauvegardé et -T
spécifie l’ensemble de données de test
java weka.classifiers.trees.J48
-l j48.model -T test.arff
I
Chaque classifieur a un format de modèle binaire différent, un
modèle ne pourra être lu que par le même classifieur
04 jan 2012 / Rév. 1 - page 43 sur 53
Entraînement et sauvegarde des modèles (3)
I
Weka contient de très nombreux algorithmes de classification
regroupés en catégories : bayes, functions, rules, trees, etc.
I
Attention : il faut installer LibSVM pour que Weka puisse l’utiliser
Démonstration 3
I
I
I
Entraînement de modèles simples (Explorer )
Sauvegarde/chargement des modèles
Présentation d’Akinator (arbre de recherche)
04 jan 2012 / Rév. 1 - page 44 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 45 sur 53
Mesures de performance
I
Matrice de confusion
classe prédite
oui
classe réelle
I
oui vrai positif (TP) faux negatif (FN)
non faux positif (FP) vrai negatif (TN)
Calcul des mesures classiques
Précision =
I
non
TP
T P + FP
Rappel =
TP
T P + FN
f-mesure =
2×P×R
(P + R)
Les erreurs n’ont pas toutes le même impact : matrice de coût
04 jan 2012 / Rév. 1 - page 46 sur 53
Découpage des données
I
Situation idéale : grand ensemble de données d’entraînement et
ensemble de données de test distinct
I
Découpage des données en deux sous-ensembles
I
I
I
Ensemble d’entraînement (e.g. 66%)
Ensemble de test (e.g. 33%)
Validation croisée en n strates
I
I
I
Partitionnement en n sous-ensembles
n − 1 sous-ensembles utilisé en entraînement et 1 pour le test
Processus répété n fois (un par partitionnement)
04 jan 2012 / Rév. 1 - page 47 sur 53
Découpage des données avec l’Explorer
04 jan 2012 / Rév. 1 - page 48 sur 53
Évaluation du modèle avec l’Explorer
04 jan 2012 / Rév. 1 - page 49 sur 53
Découpage des données en CLI
I
L’option -T spécifie l’ensemble de données de test et -i permet
d’afficher les informations de précision/rappel et f-mesure
java weka.classifiers.trees.J48
-i -l j48.model -T weather.arff
I
L’option -split-percentage détermine le pourcentage de
données qui sera utilisé pour le découpage train/test
java weka.classifiers.trees.J48
-t train.arff -split-percentage 66
I
L’option -x détermine le nombre de strates pour la validation
croisée, fonctionne uniquement si -T est absent
java weka.classifiers.trees.J48
-t train.arff -x 10
04 jan 2012 / Rév. 1 - page 50 sur 53
Les différentes options de test de Weka
I
Weka fournit un ensemble d’options permettant d’évaluer la
qualité des modèles appris
I
Être constant dans les paramètres d’évaluation afin de pouvoir
comparer les différentes méthodes
Démonstration 4
I
I
Présentation des sorties par défaut
Découpage 66/33 et validation croisée
04 jan 2012 / Rév. 1 - page 51 sur 53
Plan
Préambule
Introduction
Traitement des données
Classification
Évaluation de l’apprentissage
Conclusion
04 jan 2012 / Rév. 1 - page 52 sur 53
Conclusion
I
Aperçu des fonctionnalités de classification de Weka
I
Présentation des méthodes de classification de base
I
I
Toujours essayer la méthode la plus simple
Être très rigoureux avec l’évaluation des modèles
I
Lecture conseillée de Data Mining par Witten & Frank
I
Site web du cours
http://www.florianboudin.org/cours/weka/
04 jan 2012 / Rév. 1 - page 53 sur 53
Téléchargement