Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification...

67
Machine Learning avec Weka Module X8II090 - Cours 1 Florian Boudin Département informatique, Université de Nantes Révision 1 du 4 janvier 2012

Transcript of Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification...

Page 1: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Machine Learning avec WekaModule X8II090 - Cours 1

Florian Boudin

Département informatique, Université de Nantes

Révision 1 du 4 janvier 2012

Page 2: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des donnéesFormat d’entréePré-traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de baseEntraînement et sauvegarde des modèles dans Weka

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 2 sur 53

Page 3: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Objectifs et notions abordées

I Objectif principal : être capable d’utiliser le toolkit WekaI Interface graphiqueI Outil en ligne de commande

I Ce cours reprend les exemples ainsi que la méthodologie du livreData Mining par Witten & Frank

I Site web du courshttp://www.florianboudin.org/cours/weka/

04 jan 2012 / Rév. 1 - page 3 sur 53

Page 4: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Motivations

I La fécondation in vitro (procréation médicalement assistée)I Collecte d’ovules et de spermatozoïdesI Fécondation de plusieurs embryonsI Comment choisir les "meilleurs" embryons à implanter ?

I Nombre de cellules, régularité, fragmentation, ... (± 60 critères)

I L’éleveur de Nouvelle-ZélandeI Habituellement 20% des vaches sont abattues en fin de saisonI 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, filtrageanti-spams, radars automatiques

I L’exploration de données et l’apprentissage sont partout !

04 jan 2012 / Rév. 1 - page 4 sur 53

Page 5: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

Classification

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 5 sur 53

Page 6: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

D’ou vient le nom Weka ?

Alan Vernon via Wikimedia Commons04 jan 2012 / Rév. 1 - page 6 sur 53

Page 7: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

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 dedonnées écrite en Java

I Développée à l’université de Waikato en Nouvelle-Zélande

I HistoriqueI 1993, Développement de la version originale en CI 1997, Re-développement à partir de zéro en JavaI 2005, Weka reçoit le SIG KDD awardI 2006, Pentaho Corporation acquiert une licence exclusive

04 jan 2012 / Rév. 1 - page 7 sur 53

Page 8: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Présentation de Weka (2)

I 2 848 660 downloads sur Sourceforge (2011)

I Disponible pour toutes les plateformesI Windows x86, Windows x64, Mac OS X, Linux etc.

I Documentation riche et communauté largeI Le livre Data Mining : Practical Machine Learning Tools and

Techniques (troisième édition)I API http://weka.sourceforge.net/doc.stable/I Wiki http://weka.wikispaces.com/I FAQ http://weka.wikispaces.com/FAQI Tutoriels, mailing list, etc.

04 jan 2012 / Rév. 1 - page 8 sur 53

Page 9: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Que contient le toolkit Weka ?

I Outils de pré-traitement des données (filtering)I Sélection, transformation, combinaison d’attributs, normalisation,

re-échantillonnage, etc.

I Algorithmes pour l’exploration de donnéesI Clustering, classification, régression, etc.

I Analyse de résultatsI Évaluation de performances, comparaison d’algorithmes, etc.

I Plusieurs interfacesI Graphiques (Explorer, Experimenter et Knowledge Flow)I En ligne de commande (CLI)

04 jan 2012 / Rév. 1 - page 9 sur 53

Page 10: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Aperçu de l’interface de Weka

04 jan 2012 / Rév. 1 - page 10 sur 53

Page 11: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

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 pluspousséeI Elle offre des fonctionnalités supplémentairesI Elle utilise beaucoup moins de mémoire

I Penser à :I Augmenter le maximum heap size de Java (-Xmx1024M)I Ajouter weka.jar dans CLASSPATH

04 jan 2012 / Rév. 1 - page 11 sur 53

Page 12: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des donnéesFormat d’entréePré-traitement des données

Classification

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 12 sur 53

Page 13: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Format d’entrée (1)

I Le format d’entrée par défaut de Weka est le ARFF (AttributeRelation File Format)

I D’autres formats peuvent être importésI CSV, binaire, BDD SQL (avec JDBC), à partir d’une URL, etc.

I 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 @relationI Le nom doit être aussi compréhensible que possible

@relation temperatureMaison_14jours

04 jan 2012 / Rév. 1 - page 13 sur 53

Page 14: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Format d’entrée (2)

3. Définition des features avec @attributeI 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 doublesguillemets "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

Page 15: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

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@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yes...

04 jan 2012 / Rév. 1 - page 15 sur 53

Page 16: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Format d’entrée (3)

I Par défaut, le dernier attribut est considéré comme la variable declasse / à prédireI En CLI, la commande -c permet de choisir la variable à prédire,

e.g. -c 1 spécifie le premier attribut

I Dans le cas de données éparses, il est possible de compresser lesdonnées en ne représentant pas explicitement les valeurs 0I Le format est <index><espace><valeur>

% Instances contenant beaucoup de 00, 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

Page 17: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Format d’entrée (4)

I Les outils de visualisation sont très utilesI ARFFviewer : visualisation, modification, tri, etc.I Explorer : chargement des données, histogrammes, etc.

I Apprendre à voir les donnéesI Les histogrammes et les courbes montrent les dépendancesI Trop de données → prendre un extrait

Démonstration 1I Visualisation et modification du contenu d’un fichier ARFFI Chargement et visualisation des courbesI Conversion ARFF ⇔ CSV

04 jan 2012 / Rév. 1 - page 17 sur 53

Page 18: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des donnéesFormat d’entréePré-traitement des données

Classification

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 18 sur 53

Page 19: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

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, supprimerdes exemples, etc.

I Le package weka.filters dispose de deux types de filtresI Filtres non supervisésI 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 utilisentles valeurs de classes et peuvent biaiser les résultats

04 jan 2012 / Rév. 1 - page 19 sur 53

Page 20: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Pré-traitement des données (2)

I Plusieurs dizaines de filtresI Ajout, suppression et copie d’attributs (Add, Remove et Copy)I Ajout de bruit (AddNoise)I Fusion d’attributs (Merge)I Conversion (NominalToBinary, StringToBinary, etc.)I Anonymer (Obfuscate)I Méthode de discrétisation (Discretize)

I Exemple d’application d’un filtre avec l’Exlorer et en CLI

04 jan 2012 / Rév. 1 - page 20 sur 53

Page 21: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre : normalisation

04 jan 2012 / Rév. 1 - page 21 sur 53

Page 22: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre : normalisation

04 jan 2012 / Rév. 1 - page 21 sur 53

Page 23: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre : normalisation

04 jan 2012 / Rév. 1 - page 21 sur 53

Page 24: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre : normalisation

Avec un clic droit sur le nom du filtre, il est possible d’obtenir plus dedétails sur son fonctionnement. Il est également possible de modifiercertains paramètres.

04 jan 2012 / Rév. 1 - page 21 sur 53

Page 25: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre : normalisation

Le filtre a normalisé toutes les valeurs numériques de l’ensemble dedonnées dans l’intervalle [0, 1].

04 jan 2012 / Rév. 1 - page 21 sur 53

Page 26: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Application d’un filtre en CLI

I Tous les filtres disposent des options -i et -o pour spécifierl’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

Page 27: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Pré-traitement des données (3)

I Le pré-traitement des données est très important, et il a un impactmajeur sur la qualité de l’apprentissage

Démonstration 2I Chargement des donnéesI Application de filtres avec l’explorer (ajout de bruit, anonymer)

04 jan 2012 / Rév. 1 - page 23 sur 53

Page 28: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de baseEntraînement et sauvegarde des modèles dans Weka

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 24 sur 53

Page 29: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Les algorithmes de classification

I Les classifieurs dans Weka sont des modèles pour prédire desvaleurs nominales ou numériques

I Algorithmes de classification inclusI Arbres de décisionI Classification bayésienne naïveI Machine à vecteurs de support (SVM)I Perceptron multi-coucheI Réseau bayésien, etc.

I Des meta-classifieursI CombinaisonI BaggingI Boosting, etc.

04 jan 2012 / Rév. 1 - page 25 sur 53

Page 30: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

L’onglet Classify dans l’Explorer

04 jan 2012 / Rév. 1 - page 26 sur 53

Page 31: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de base

Règles de classificationClassification Bayésienne probabilisteLes 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

Page 32: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Déduction de règles de classification

I Trouver des règles de classification simples (1R pour 1-rule)

I IdéeI Une règle pour chaque attributI Une branche pour chacune des valeurs des attributs

I 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 regleChoisir les regles avec le plus petit taux d'erreur

04 jan 2012 / Rév. 1 - page 28 sur 53

Page 33: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Déduction de règles de classification

outlook {sunny,overcast,rainy}temperature numerichumidity numericwindy {TRUE,FALSE}play {yes,no}

@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no

Attributs Règles Erreurs Total

1 outlook sunny → no 2/5 4/14overcast → yes 0/4rainy → yes 2/5

2 temperature 85 → no 0/1 ?/1483 → yes 0/1... ...

3 humidity 96 → yes 0/1 ?/1495 → no 0/1... ...

4 windy false → yes 2/8 5/14true → no? 3/6

? choix aléatoire de la meilleur règle

I Problème avec les attributsnumériques

04 jan 2012 / Rév. 1 - page 29 sur 53

Page 34: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Déduction de règles de classification

outlook {sunny,overcast,rainy}temperature numerichumidity numericwindy {TRUE,FALSE}play {yes,no}

@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no

Attributs Règles Erreurs Total

1 outlook sunny → no 2/5 4/14overcast → yes 0/4rainy → yes 2/5

2 temperature 85 → no 0/1 ?/1483 → yes 0/1... ...

3 humidity 96 → yes 0/1 ?/1495 → no 0/1... ...

4 windy false → yes 2/8 5/14true → no? 3/6

? choix aléatoire de la meilleur règle

I Problème avec les attributsnumériques

04 jan 2012 / Rév. 1 - page 29 sur 53

Page 35: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Déduction de règles de classification

outlook {sunny,overcast,rainy}temperature numerichumidity numericwindy {TRUE,FALSE}play {yes,no}

@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no

Attributs Règles Erreurs Total

1 outlook sunny → no 2/5 4/14overcast → yes 0/4rainy → yes 2/5

2 temperature 85 → no 0/1 ?/1483 → yes 0/1... ...

3 humidity 96 → yes 0/1 ?/1495 → no 0/1... ...

4 windy false → yes 2/8 5/14true → no? 3/6

? choix aléatoire de la meilleur règle

I Problème avec les attributsnumériques

04 jan 2012 / Rév. 1 - page 29 sur 53

Page 36: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Déduction de règles de classification

outlook {sunny,overcast,rainy}temperature numerichumidity numericwindy {TRUE,FALSE}play {yes,no}

@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no

Attributs Règles Erreurs Total

1 outlook sunny → no 2/5 4/14overcast → yes 0/4rainy → yes 2/5

2 temperature 85 → no 0/1 ?/1483 → yes 0/1... ...

3 humidity 96 → yes 0/1 ?/1495 → no 0/1... ...

4 windy false → yes 2/8 5/14true → no? 3/6

? choix aléatoire de la meilleur règle

I Problème avec les attributsnumériques

04 jan 2012 / Rév. 1 - page 29 sur 53

Page 37: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification 1-R dans Weka

04 jan 2012 / Rév. 1 - page 30 sur 53

Page 38: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Discrétisation des données

I Comment convertir les attributs numériques en attributsnominaux pour pouvoir créer des règles ?

I Il faut discrétiser les attributs numériques

64 65 68 69 70 71 72 72 75 75 80 81 83 85yes no yes yes yes no no yes yes yes no yes yes no

I Création (automatique) de 8 catégories en découpant aux points64.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

Page 39: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Discrétisation des données

I Comment convertir les attributs numériques en attributsnominaux pour pouvoir créer des règles ?

I Il faut discrétiser les attributs numériques

64 65 68 69 70 71 72 72 75 75 80 81 83 85yes no yes yes yes no no yes yes yes no yes yes no

I Création (automatique) de 8 catégories en découpant aux points64.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

Page 40: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de base

Règles de classificationClassification Bayésienne probabilisteLes 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

Page 41: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Ensemble de données weather.symbolic

@relation weather.symbolic

@attribute outlook {sunny, overcast, rainy}@attribute temperature {hot, mild, cool}@attribute humidity {high, normal}@attribute windy {TRUE, FALSE}@attribute play {yes, no}

@datasunny,hot,high,FALSE,nosunny,hot,high,TRUE,noovercast,hot,high,FALSE,yesrainy,mild,high,FALSE,yesrainy,cool,normal,FALSE,yesrainy,cool,normal,TRUE,noovercast,cool,normal,TRUE,yes...

04 jan 2012 / Rév. 1 - page 33 sur 53

Page 42: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste I

I Méthode simple et intuitive basée sur le théorème de Bayes

P(H|E) =P(E|H)P(H)

P(E)

I Ou H est l’hypothèse à tester et E l’évidence associée à H, P(H) estune probabilité a priori

I Calcul des probabilités conditionnelles à partir des instancesI P(E|H)→ P(outlook : sunny|yes),P(windy : TRUE|yes), ...I P(H)→ P(yes),P(no)

04 jan 2012 / Rév. 1 - page 34 sur 53

Page 43: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste II

@datasunny,hot,high,FALSE,nosunny,hot,high,TRUE,noovercast,hot,high,FALSE,yesrainy,mild,high,FALSE,yesrainy,cool,normal,FALSE,yesrainy,cool,normal,TRUE,noovercast,cool,normal,TRUE,yessunny,mild,high,FALSE,nosunny,cool,normal,FALSE,yesrainy,mild,normal,FALSE,yessunny,mild,normal,TRUE,yesovercast,mild,high,TRUE,yesovercast,hot,normal,FALSE,yesrainy,mild,high,TRUE,no

P(outlook : sunny|yes) = 2/9P(outlook : sunny|no) = 3/5P(windy : TRUE|yes) = 3/9...

P(yes) = 9/14P(no) = 5/14

04 jan 2012 / Rév. 1 - page 35 sur 53

Page 44: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (2)

Outlook Temperature Humidity Windy Playvalue yes no value yes no value yes no value yes no 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/14overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5rainy 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.0053I Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206

I Les nombres peuvent être changés en probabilitésI Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%I Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%

04 jan 2012 / Rév. 1 - page 36 sur 53

Page 45: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (2)

Outlook Temperature Humidity Windy Playvalue yes no value yes no value yes no value yes no 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/14overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5rainy 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.0053I Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206

I Les nombres peuvent être changés en probabilitésI Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%I Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%

04 jan 2012 / Rév. 1 - page 36 sur 53

Page 46: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (2)

Outlook Temperature Humidity Windy Playvalue yes no value yes no value yes no value yes no 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/14overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5rainy 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

I Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206

I Les nombres peuvent être changés en probabilitésI Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%I Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%

04 jan 2012 / Rév. 1 - page 36 sur 53

Page 47: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (2)

Outlook Temperature Humidity Windy Playvalue yes no value yes no value yes no value yes no 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/14overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5rainy 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.0053I Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206

I Les nombres peuvent être changés en probabilitésI Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%I Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%

04 jan 2012 / Rév. 1 - page 36 sur 53

Page 48: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (2)

Outlook Temperature Humidity Windy Playvalue yes no value yes no value yes no value yes no 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/14overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5rainy 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.0053I Vraisemblance de no : 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206

I Les nombres peuvent être changés en probabilitésI Probabilité de yes = 0.0053 / (0.0053 + 0.0206) = 20.5%I Probabilité de no = 0.0206 / (0.0053 + 0.0206) = 79.5%

04 jan 2012 / Rév. 1 - page 36 sur 53

Page 49: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification Bayésienne probabiliste (3)

I Méthode simple et intuitive basée sur le théorème de Bayes

P(H|E) =P(E|H)P(H)

P(E)

I Ou H est l’hypothèse à tester et E l’évidence associée à H, P(H) estune probabilité a priori

I Reprise de l’exemple précédentI 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

Page 50: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de base

Règles de classificationClassification Bayésienne probabilisteLes 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

Page 51: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Les arbres de décision

I Processus récursifI Sélectionner un attribut en

noeud racine et ajouter unebranche pour chacune desvaleurs possibles

I Répéter le processus pourchaque branche, utilisantuniquement les attributs quiatteignent la branche

I 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

Page 52: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Les arbres de décision

I Processus récursifI Sélectionner un attribut en

noeud racine et ajouter unebranche pour chacune desvaleurs possibles

I Répéter le processus pourchaque branche, utilisantuniquement les attributs quiatteignent la branche

I 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

Page 53: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Les arbres de décision

I Processus récursifI Sélectionner un attribut en

noeud racine et ajouter unebranche pour chacune desvaleurs possibles

I Répéter le processus pourchaque branche, utilisantuniquement les attributs quiatteignent la branche

I 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

Page 54: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Classification J48 dans Weka

04 jan 2012 / Rév. 1 - page 40 sur 53

Page 55: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

ClassificationLes algorithmes de classification dans WekaLes méthodes de baseEntraînement et sauvegarde des modèles dans Weka

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 41 sur 53

Page 56: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Entraînement et sauvegarde des modèles (1)

04 jan 2012 / Rév. 1 - page 42 sur 53

Page 57: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Entraînement et sauvegarde des modèles (2)

I L’option -t spécifie l’ensemble de données d’entraînement et -dpermet 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 -Tspé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, unmodèle ne pourra être lu que par le même classifieur

04 jan 2012 / Rév. 1 - page 43 sur 53

Page 58: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Entraînement et sauvegarde des modèles (3)

I Weka contient de très nombreux algorithmes de classificationregroupés en catégories : bayes, functions, rules, trees, etc.

I Attention : il faut installer LibSVM pour que Weka puisse l’utiliser

Démonstration 3I Entraînement de modèles simples (Explorer)I Sauvegarde/chargement des modèlesI Présentation d’Akinator (arbre de recherche)

04 jan 2012 / Rév. 1 - page 44 sur 53

Page 59: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

Classification

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 45 sur 53

Page 60: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Mesures de performance

I Matrice de confusion

classe prédite

oui non

classe réelle oui vrai positif (TP) faux negatif (FN)non faux positif (FP) vrai negatif (TN)

I Calcul des mesures classiques

Précision =TP

TP + FPRappel =

TP

TP + FNf-mesure =

2× P × R

(P + R)

I Les erreurs n’ont pas toutes le même impact : matrice de coût

04 jan 2012 / Rév. 1 - page 46 sur 53

Page 61: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Découpage des données

I Situation idéale : grand ensemble de données d’entraînement etensemble de données de test distinct

I Découpage des données en deux sous-ensemblesI Ensemble d’entraînement (e.g. 66%)I Ensemble de test (e.g. 33%)

I Validation croisée en n stratesI Partitionnement en n sous-ensemblesI n− 1 sous-ensembles utilisé en entraînement et 1 pour le testI Processus répété n fois (un par partitionnement)

04 jan 2012 / Rév. 1 - page 47 sur 53

Page 62: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Découpage des données avec l’Explorer

04 jan 2012 / Rév. 1 - page 48 sur 53

Page 63: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Évaluation du modèle avec l’Explorer

04 jan 2012 / Rév. 1 - page 49 sur 53

Page 64: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Découpage des données en CLI

I L’option -T spécifie l’ensemble de données de test et -i permetd’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 dedonné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 validationcroisé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

Page 65: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Les différentes options de test de Weka

I Weka fournit un ensemble d’options permettant d’évaluer laqualité des modèles appris

I Être constant dans les paramètres d’évaluation afin de pouvoircomparer les différentes méthodes

Démonstration 4I Présentation des sorties par défautI Découpage 66/33 et validation croisée

04 jan 2012 / Rév. 1 - page 51 sur 53

Page 66: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Plan

Préambule

Introduction

Traitement des données

Classification

Évaluation de l’apprentissage

Conclusion

04 jan 2012 / Rév. 1 - page 52 sur 53

Page 67: Machine Learning avec Weka - Module X8II090 - Cours 1 · Déductionderèglesdeclassification outlook {sunny,overcast,rainy} temperature numeric humidity numeric windy {TRUE,FALSE}

Conclusion

I Aperçu des fonctionnalités de classification de Weka

I Présentation des méthodes de classification de baseI Toujours essayer la méthode la plus simpleI Être très rigoureux avec l’évaluation des modèles

I Lecture conseillée de Data Mining par Witten & Frank

I Site web du courshttp://www.florianboudin.org/cours/weka/

04 jan 2012 / Rév. 1 - page 53 sur 53