TD Apprentissage Automatique

publicité
TD Apprentissage Automatique
Partie I : premières expérimentations
L’objectif de ces Travaux Dirigés est d’acquérir une première expérience pratique des algorithmes
présentés dans le cours d’Apprentissage Automatique en utilisant le logiciel WEKA.
Cette première partie propose de prendre en main le logiciel d’apprentissage et de fouille de données
WEKA développé par Witten et Frank∗ (version stable 3.6). La prise en main s’effectuera en trois
étapes :
1
Premiers pas
Le logiciel WEKA et le format de données ARFF sont présentés. Si cela n’est pas déjà fait, le
logiciel doit ensuite être téléchargé à l’adresse suivante : http://www.cs.waikato.ac.nz/ml/weka/.
Il est disponible sur les plate-formes Windows et UNIX. Sous linux, il est fourni sous la forme d’une
archive JAR et peut donc être exécuté sans problème sur la machine locale.
Vous avez un peu de temps pour prendre en main le logiciel. Pour cela, vous effectuerez les étapes
suivantes :
1. Copiez le fichier weather.nominal.arff sur votre bureau. Il se trouve dans le répertoire /bin
de WEKA.
2. Ouvrez-le avec un simple éditeur de texte et regardez comment il est constitué.
3. Chargez-le en mémoire avec WEKA (utilisez la version “explorer”).
4. Visualisez la distribution des données.
5. Rendez-vous dans l’onglet “classify” et choisissez l’algorithme Id3 de “trees”.
6. Cliquez sur “Use training set” et lancez l’algorithme.
7. Analysez et cherchez à comprendre la sortie du classifieur. Où se trouve l’arbre de décision ? Où
se trouve le temps pris par l’algorithme d’apprentissage ? etc.
8. Revenez dans l’onglet “Prepocess” et essayez plusieurs techniques de prétraitements proposées
par WEKA (suppression ou ajout d’un attribut, etc.).
9. Chargez cette fois le fichier weather.arff et essayez de relancer l’algorithme Id3. Que se passet-il et pourquoi ? Utilisez un prétraitement sur ce jeu de données pour pouvoir appliquer l’algorithme Id3. Comparez les résultats avec ceux obtenus sur weather.nominal.
2
Etude comparative
A présent que vous avez pris en main le logiciel WEKA, l’objectif qui vous est fixé est décrit
ci-dessous :
1. Choisissez 3 jeux de données “jouet”, déjà traduites au format ARFF et fournies avec le logiciel
sur la dizaine fournies. Ces bases devront présenter des caractéristiques différentes en fonction
de la taille de l’échantillon, de la taille et de la nature du langage de description, de la présence
ou non de données manquantes, etc. Attention : ces bases doivent nécessairement comporter
un attribut “classe” (le dernier attribut décrit) de nature nominal possédant un nombre fini de
valeur. Il ne s’agit pas d’une tâche de régression, mais de classification.
Vous utiliserez, pour décrire ces caractéristiques, un format comme celui ci-dessous :
nom de la base
n
m
c 2013
Master 2ère année ECD – Université Lumière (Lyon 2) Responsable du cours : Julien Velcin
type
µ
etc.
...
où n correspond à la taille de l’échantillon d’apprentissage, m au nombre d’attributs, “type” à
la nature (symbolique et/ou numérique) des attributs, µ au pourcentage de valeurs manquantes,
etc. N’hésitez pas à ajouter vos propres caractéristiques et à commenter le choix de vos jeux de
données.
2. Vous utiliserez ensuite les algorithmes d’apprentissage supervisé proposés par le logiciel :
– NaiveBayesSimple
– NaiveBayes
– Id3
– J48
– DecisionStump
– MultilayerPerceptron (essayez l’interface graphique)
– VotedPerceptron
– SMO (machines à vecteurs supports)
– IBk (k-plus-proches-voisins)
– Bagging
– AdaBoost
Si vous ne connaissez pas le fonctionnement précis de l’un de ces algorithmes, n’hésitez pas à
aller consulter sa description (bouton “More”). Attention, la plupart de ces algorithmes ont des
paramètres qu’il vous faudra prendre en compte lors de vos expérimentations. Vous en choisirez
quelques-uns que vous ferez varier afin d’observer l’effet pratique de ces paramètres sur les
résultats obtenues (par exemple k pour les k-plus-proches-voisins ou le nombre de neurones dans
la couche caché pour le perceptron multi-couches).
3. L’objectif est à présent de comparer les résultats obtenus à l’aide des différents algorithmes
donnés ci-dessus sur chacun des 3 jeux de données choisis. Ces comparaisons s’appuiront sur :
– l’erreur apparente sur le jeu d’entraı̂nement (training set),
– l’estimation de l’erreur réelle par cross-validation (avec 5, 10 et 20 folds),
– le temps d’exécution de l’algorithme d’apprentissage,
– tout critère supplémentaire que vous jugerez nécessaire (interprétabilité, etc.).
Certains algorithmes ne sont pas utilisables sur certains jeux de données. Il faudra le préciser et
éventuellement expliquer pourquoi.
4. Une fois que vous aurez terminé cette partie, vous pouvez vous rendre sur le site du répertoire
UCI afin de trouver le jeu de données sur lequel vous souhaitez travailler :
http://mlearn.ics.uci.edu/MLRepository.html
Bien entendu, vous pouvez proposer d’autres jeux de données à condition d’en parler avec votre
encadrant local.
∗
Ian H. Witten and Eibe Frank (2005) ”Data Mining : Practical machine learning tools and techniques”, 2nd
Edition, Morgan Kaufmann, San Francisco, 2005.
Téléchargement