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