Expériences sur les données du répertoire de données de UCI

publicité
Expériences sur les données du répertoire de données de UCI avec
une boîte à outils
Bouchekif Abdesselam
11 mars 2012
Résumé
Les dix dernières années ont été témoin de grands progrès réalisés dans le domaine
de l’apprentissage automatique et de la fouille de données. Des dizaines de méthodes
et d’outils d’apprentissage sont disponibles, ce qui rend leur choix très difficile.
Le but de ce rapport est de comparer les différentes méthodes d’apprentissage sur un
même ensemble test, et étudier les différences entre les logiciels de data mining.
1
Introduction
Une multitude de logiciels gratuits de Data Mining est disponible sur le web. On distingue
deux catégories d’outils :
– Les outils généralistes offrant une panoplie d’algorithmes d’apprentissage et de classification, par exemple WEKA, ORANGE, TANAGRA, etc.
– Les outils spécialistes comme MultiBoost 1 (pour le boosting), SV M multiclass 2 (pour le
SVM).
En parallèle, nous avons assisté à un développement croissant de techniques d’apprentissage. Si une telle abondance a permis des avancées considérables dans des domaines d’application des plus variés, elle a aussi donné naissance à un contexte dans lequel certaines
questions se posent avec plus d’acuité. Comment choisir les algorithmes les plus adaptés
pour un type de problème particulier ? quel est le meilleur algorithme ?
Ce manuscrit est composé de deux parties :
Dans la première partie, nous nous intéressons aux performances des outils généralistes et
spécialistes, pour cela on considère weka et MultiBoost comme des représentants des outils
généralistes et spécialistes respectivement.
La deuxième partie est consacrée à l’étude comparative entre les algorithmes de classification, nous nous pencherons plus particulièrement sur SVM et réseaux de neurones. Pour
1. http://www.multiboost.org/
2. http://svmlight.joachims.org/svm_multiclass.html
1
évaluer les performances de ces algorithmes, nous utilisons les outils Weka et Tanagra avec
les mêmes données d’apprentissage et de test.
Ce comparatif est intéressant à plus d’un titre. Nous aurons la possibilité d’évaluer les
différentes implémentations en se basant sur certains critères comme la qualité de prédiction,
l’occupation de mémoire et la portabilité de ces outils.
2
Les outils et les données
2.1
Les outils
Les logiciels que nous avons mis en compétition sont les suivants :
L’outil
Le lien de téléchargement
Portabilité
Weka 3.6.5
TANAGRA 1.4.27
MultiBoost 1.1.02
http://weka.fr.malavida.com/
http://eric.univ-lyon2.fr/~ricco/tanagra/fr/tanagra.html
http://www.multiboost.org/home/download
Oui
Non
Oui
Table 1 – Liste des logiciels utilisés dans les comparaisons
Weka et MultiBoost (et d’autres comme Orange) sont directement opérationnels quel que
soit le système d’exploitation. Pour Weka c’est grâce à la machine virtuelle Java. En revanche,
Multiboost tourne en C++ natif, il est compilé séparément pour chaque plateforme. Cette
portabilité d’outils est indéniablement un atout.
2.2
Les données
Nous traitons en particulier le format ARFF. La grande majorité des logiciels de data
mining sait manipuler cette format y compris les outils sélectionnés. Pour voir le comportement des algorithmes et des outils, on a sélectionné les petites et les grandes bases. Le
panel de jeux de données a été sélectionné à partir du dépôt de l’UCI 3 à savoir « Zoo 4 »,
« wine 5 », « Pendigits 6 » et « Nominal 7 »). Ces jeux de données incluent des informations
sur les classes recherchées (étiquettes).
2.2.1
La base d’animaux Zoo
Il s’agit d’un jeu de 100 instances d’animaux caractérisées par 17 variables hétérogènes
et pré-classés en 7 familles. Le nom d’animal constitue la première variable. Les 15 variables
suivantes sont booléennes, elles sont liées :
3.
4.
5.
6.
7.
http://archive.ics.uci.edu/ml/
http://www.hakank.org/weka/zoo.arff
http://www.hakank.org/weka/wine.arff
http://mlearn.ics.uci.edu/databases/pendigits/
http://www.multiboost.org/examplel
2
– soit à la présence de poils, de plumes, d’œufs, de lait, d’épine dorsale, d’ailerons et de
queue de l’animal,
– soit à son caractère : s’il est aérien, aquatique, prédateur, denté, respire, venimeux,
domestique.
La dernière variable descriptive est de type quantitative numérique. Elle précise le nombre
de pattes et prend ses valeurs dans l’ensemble {0, 2, 4, 5, 6, 8}.
2.2.2
La base Wine
La base de données « Wine » contient les résultats d’une analyse chimique des vins
produits dans la même région en Italie, mais provenant de trois cultivateurs différents. Elle
est constituée de 178 données caractérisées par 13 attributs.
2.2.3
La base Nominal
Il s’agit d’un jeu de 8145 données caractérisées par 193 attributs. Elle contient 5 classes.
La base Nominal a été utilisée pour savoir comment se comportent les logiciels pour les
grandes bases.
2.2.4
La base Pendigits
La base « Pen-Based Recognition of Handwritten Digits » contient 7494 exemples d’apprentissage et 3498 exemples test. Chaque exemple est représenté par 16 caractéristiques.
Elle contient 10 classes pour les 10 chiffres (de 0 à 9).
Quel que soit le logiciel utilisé, on doit impérativement passer par les étapes suivantes :
– Importer les données dans le logiciel,
– Subdiviser les données en ensemble d’apprentissage et de test,
– Sélectionner la méthode et éventuellement la paramétrer,
– Lancer l’induction de l’apprentissage,
– Evaluer le système sur l’ensemble test.
3
Comparaison entre les outils généralistes et spécialistes
Il s’agit dans cette partie de répondre au mieux à la question : est ce que l’outil spécialisé
donne un gain (en terme de performance de l’occupation en mémoire) par rapport à son
homologue généraliste ?
Le tableau ci-dessous représente les résultats de comparaison entre « weka » et « Multiboost » en utilisant deux apprenants faibles stump et les arbres de décision.
Comme indiqué dans la figure 2a ci-dessous, le Multiboost donne une interprétation des résultats obtenus (itération par itération). Par contre, Weka nous offre uniquement les résultats
3
Figure 1 – Tableau comparatif entre Weka et Multiboost
et la matrice de confusion. Par conséquent, on peut suivre le phénomène de sur-apprentissage
avec Multiboost. En effet, si l’erreur sur l’ensemble d’apprentissage diminue alors l’erreur sur
la validation augmente, cela signifie que notre algorithme a amélioré ses performances sur
les échantillons d’apprentissage mais perd son pouvoir de prédiction sur ceux provenant de
la validation (à ce moment on arrête l’apprentissage).
Dans ces expériences, les ensembles test et apprenants fiables sur lesquels les deux outils ont
été évalués, sont les mêmes. En principe les intervalles de confiance seront beaucoup plus
serrés. Mais ce qu’on a obtenu est carrément le contraire. Ces résultats illustrent bien la différence entre les outils généralistes et spécialistes au terme de qualité de prédiction surtout
avec les grandes bases.
Problème y a t-il une grande différence entre l’erreur de multiboost et celle de weka. Comme
au début, on a pensé au phénomène de sur-apprentissage, même si ce problème est imprévisible au vu des caractéristiques de nos données (beaucoup d’instances dans les fichiers test
et apprentissage). La figure 2b, nous confirme qu’il n’y a pas d’apprentissage par cœur. La
seule explication qui nous reste est que l’outil Multiboost permet contrairement au weka,
d’accélérer l’apprentissage 8 (convergence rapide vers un minimum global).
A noter qu’après plusieurs essais ( la figure 4), on a trouvé une base de données (« Poker
Hand » 9 où weka donne des meilleurs résultats par rapport à Multiboost. Mais si on voit la
matrice de confusion, le système affecte toutes les instances à la classe a.
Autre point important est l’occupation en mémoire, on était confronté à un dépassement
de la mémoire avec Weka. Cela revient au grand nombre de résultats intermédiaires conservés,
gonflant inutilement la mémoire utilisée. Une autre hypothèse qui peut être valide est que les
outils utilisant la machine virtuelle (comme Weka) nécessitent plus de place en mémoire par
8. publication des auteurs de l’outil : http://www.clopinet.com/isabelle/Projects/KDDcup09/
Papers/UniParisSud-paper4.pdf
9. http://archive.ics.uci.edu/ml/datasets/Poker+Hand, il s’agit d’un jeu de 1025010 instances, caractérisées de 11 attributs
4
rapport aux outils compilés (comme Multiclass). Professeur Ricco Rakotomalala 10 a bien
confirmé cette hypothèse dans ces études 11 portant sur la performance des logiciels libres
avec des fichiers volumineux.
Remarque : Les expériences ont été effectuées sur une machine intel (R) core (TM) i3 à
2.40 GHZ avec 4 GB de mémoire vive.
Les résultats sont nettement meilleures avec les classifieurs faibles de type arbres de
décision par rapport au stump. Cela revient essentiellement à sa nature : arbre de décision à
un seul niveau de profondeur. Il empêche de trouver une hypothèse adaptée pour modéliser
le problème. Ainsi, le stump ne permet pas de capturer les corrélations entre les attributs.
Donc la performance de Boosting dépend en grande partie du classifieur faible utilisé pour
apprendre les différentes hypothèses ou conditions de base. L’influence des paramètres sera
clarifiée dans la prochaine section.
4
La comparaison des méthodes d’apprentissage
Dans cette section, nous analysons une situation que l’on rencontre souvent dans la pratique : on dispose de données d’apprentissage et on cherche quel est l’algorithme à appliquer
parmi la panoplie disponible. Les questions qu’on peut se poser : comment interpréter la
différence de performance mesurée empiriquement entre deux algorithmes ? Autrement dit,
est ce qu’un algorithme dont la performance en taux d’erreur de classification vaut e1 est
meilleur qu’un autre dont la performance mesurée est e2 ? Afin d’éliminer la variance due à
la différence entre les échantillons, on utilisera un même corpus.
On peut faire un simple filtrage : Si on dispose des données et des étiquettes que l’on désire
à ce moment là, on choisit l’une des méthodes supervisées (arbres de décision, réseau de
neurones, SVM, Boosting,...). Sinon (les étiquettes ne sont pas fournies) on applique l’un des
algorithmes non supervisés (algorithme k-moyennes, méthodes hiérarchiques, etc). Dans le
cas non supervisé, on présente seulement les données à notre modèle et on le laisse évaluer
jusqu’à ce qu’il se stabilise.
Puisqu’on connait les classes de nos données (voir section 2.2), on va appliquer les méthodes
d’apprentissage supervisées.
Le tableau récapitulatif (représenté dans la figure 5) est le fruit d’une série d’expériences.
La conclusion que j’ ai déduite : il n’est pas évident de comparer deux algorithmes. En effet,
la performance mesurée dépend de plusieurs paramètres, par exemple
– le boosting dépend de la technique utilisée pour effectuer les combinaisons ainsi que
du classifieur faible mis en œuvre.
– les SVMs dépendent des fonctions de noyau.
– les réseaux de neurones dépendent de l’architecture (i.e nombre de couches cachées, le
nombre de neurones dans une couche et leur interconnexion) utilisée.
Cela est bien confirmée dans le tableau (représenté dans la figure 5), il suffit de procéder
au changement de la fonction noyau, dans le cas SVM, d’ailleurs le taux d’erreur est passé
10. http://eric.univ-lyon2.fr/~ricco/
11. http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/fr_Tanagra_Perfs_Comp_SVM.pdf
5
de 60 % à 5%. Donc on peut voir le problème comme étant la recherche de la meilleure
hypothèse. Si on arrive à déterminer un espace des hypothèses les plus forts, on peut alors
appliquer nos algorithmes pour rechercher la bonne solution. En d’autre terme, si on trouve
les paramètres qui nous donnent la bonne solution pour chaque algorithme, dans ce cas,
on peut dire que l’algorithme A est meilleur que l’algorithme B. Malheureusement aucune
méthode n’est connue pour déterminer « les bons paramètres ».
Si on prend le cas des réseaux de neurones, l’un des problèmes est la difficulté de décider leur
architecture. En pratique, on utilise les algorithmes qui commencent avec une architecture
minimale et ajoutent des neurones et des connexions au fur et à mesure de l’apprentissage.
Remarque : LIBSVM est aussi accessible dans WEKA. Il me semble qu’elle n’est soit pas
automatiquement installée. Lorsque j’ai tenté de la lancer sur mes données, un message
d’erreur est apparu, indiquant que la bibliothèque n’est pas disponible dans le chemin de
recherche usuel (CLASSPATH).
5
Conclusions
Dans ce rapport, on a étudié le comportement de quelques logiciels libres, et on fait une
petite comparaison entre les différents algorithmes d’apprentissage.
– Nous ne sommes pas tombé dans le piège des jugements lapidaires du style « qui est
bien, qui n’est pas bien, qui est le meilleur ». En effet il y a d’autres critères qu’il ne
faut pas ignorer comme la richesse de la bibliothèque des méthodes, accès aux données
(fichiers texte par exemple), exploitation graphique (visualisation des données), etc.
– Les outils utilisant la machine virtuelle sont indéniablement un atout car ils sont opérationnels quel que soit le système d’exploitation (comme Weka, Orange). Mais elle
(la machine virtuelle) devient un inconvénient lorsque l’on traite de grandes bases de
données, l’occupation de la mémoire atteint très vite un niveau critique.
– Les programmes compilés sont les moins gourmands (comme Multiboost).
– La qualité de prédiction est nettement meilleure dans les outils spécialistes par rapport
aux généralistes.
6
7
Figure 2 – (a) Résultats obtenus avec Multiboost (b) Multiboost permet de suivre le
sur-apprentissage
Figure 3 – Résultats obtenus avec Weka
Figure 4 – Résultats obtenus avec Weka et Multiboost en utilisant la base Pocker
8
Figure 5 – Taux d’erreur de SVM et RMC sous Weka et Tanagra
Figure 6 – Résultats obtenus avec Tanagra
9
Figure 7 – Les résultats obtenus avec Weka
10
Téléchargement