Telechargé par حبيب بن سعادة

EVALUATION EN DATA MINING

publicité
EVALUATION EN DATA MINING
L’évaluation est la clé pour progresser en data mining ou ailleurs.
L’évaluation est indispensable.
Il y’ a plusieurs façon d’inférer des connaissances à partir des données.
Nous avons étudié certains algorithmes.
Pour savoir quelle méthode, algorithme, approche est meilleur, il est nécessaire de disposer
de méthodes systématiques d’évaluation.
Ce n’est pas aussi simple qu’il peut paraitre.
Pourquoi pas ?
Nous avons la base d’apprentissage (qui a servi à construire le modèle), Il suffit d’évaluer le
modèle sur cette base.
C’est-à-dire combien de fois le modèle donne la bonne (même) réponse que la base.
Et bien NON. Les performances du modèle sur la base d’apprentissage ne sont pas un bon
indicateur sur les performances du modèle en GENERAL.
Par analogie, quand on évalue les étudiants (les examens) à la fin du semestre, on ne va pas
les évaluer sur les exemples et exercices vus aux TDs et Cours. Ce n’est pas un bon indicateur
de la compréhension du module.
Votre modèle travaillera sur des données du futur qui n’ont pas servi à sa conception, donc
sa performance doit être calculée sur des données qui n’ont pas servi à sa conception.
Logique.
Rien ne vous interdit de le tester en plus, sur les données d’apprentissage, mais ce n’est pas
un indicateur de bonnes performances.
Logiquement, une bonne performance sur la base d’apprentissage est attendue de tout
modèle. Une mauvaise performance serait illogique et un indicateur que votre modèle a des
problèmes.
Une très bonne performance sur la base d’apprentissage, suivie d’une performance
moyenne dans la réalité est un indicateur de SURAPPRENTISSAGE.
Ce qui est MAUVAIS.
De là, on a la première règle qui est que les données d’apprentissage et les données
d’évaluations doivent être distinctes.
Important : Une fois que l’étape d’évaluation a été accomplie avec succès, vous pouvez
toujours intégrer ses données dans la base d’apprentissage. Cela permettra de maximiser la
quantité de données utilisée pour la génération du modèle qui sera utilisé en pratique.
Quand on dispose, d’une très quantité de données, le problème se pose moins. Il suffira
d’utiliser une partie pour l’apprentissage, et une partie pour l’évaluation. Chacune des deux
parties serait donc, suffisante pour assurer un bon apprentissage, et une bonne évaluation.
Sachant que tout bon apprentissage exige un maximum de données et toute bonne
évaluation exigera un maximum de données.
Dans la réalité, il s’agira de gérer INTELLIGEMMENT une quantité limité de données et
pour l’apprentissage et pour l’évaluation. Car les données de qualité sont rares.
Nous allons présenter quelques techniques sur comment répartir les données entre base
d’apprentissage et base de test (évaluation).
Le dilemme à résoudre est qu’avec une quantité de données limitées, il s’agira de donner le
maximum à l’apprentissage et au test ????
Chaque technique aura ses avantages et inconvénients.
Au cas où vous ne l’avez pas compris, l’évaluation dans l’exemple de la classification,
consistera à présenter au modèle un certain nombre d’instances de la base de donnée
classée, mais sans leurs classes pour qu’il les classe. On comptabilisera le nombre de succès
(la classe fourni par le modèle et la classe de l’instance sont identiques), et le nombre
d’échecs (la classe fourni par le modèle et la classe réelle de l’instance sont différentes).
Revenons aux méthodes d’évaluation ;
La première, et on a déjà vu, c’est de calculer le taux d’erreur sur la base d’apprentissage. On
parle de « resubstitution error », parce que calculée à partir d’un ensemble test qui a servi
aussi comme ensemble d’apprentissage. Bien que non fiable, elle peut apporter des
informations intéressantes.
La deuxième technique est appelée le « Hold Out », laisser à part, réserver une partie des
données pour l’étape d’évaluation, ne pas les utiliser pour l’apprentissage.
Vous disposez de N instances dans votre base de données, mettre M instances dans la
base d’apprentissage et (N-M) instances dans la base test.
Comme je l’ai déjà dit, chaque étape (apprentissage, évaluation) sera meilleure si elle
dispose d’un maximum de donnée.
Pour l’apprentissage, vous l’avez, je suppose déjà compris, plus de données on a, plus notre
modèle sera plus complet, plus généralisable.
Pour l’évaluation aussi, plus vous avez testé sur plus grande quantité de données, plus votre
évaluation est significative, fiable.
Quelqu’un qui dit, j’ai testé sur 10000, a plus de crédibilité que quelqu’un qui dit j’ai testé
sur 10 ou 100. Non ?
Mais, on est obligé de décider sur partage ; généralement on prendra 2/3 base
d’Apprentissage, 1/3 base de Test. Mais, vous libre de fixer les pourcentages.
Est-ce que cela, on aura des répercussions sur l’apprentissage et l’évaluation ?
J’attends votre réponse dans le premier TP.
En plus, ce qui risque de se passer, c’est que les données ayant servi à l’apprentissage soient
totalement différentes des données d’évaluations, en terme de qualité ou de répartitions
des classes et valeurs d’attributs. Dans la première base, il était question en majorité de
certaines classes et de certaines valeurs d’attributs. Et dans la base de test, on se retrouve
malheureusement avec une majorité d’autres classes et valeurs d’attributs.
Comment seront les performances de ce modèle d’après vous ?
Et que faut-il faire, d’après vous ?
On doit faire de sorte que les 2 échantillons de la base de données, que sont la base
d’apprentissage et la base de test soient REPRESENTATIFS de la base de données.
C’est-à-dire qu’on se trouve avec la même répartition en termes de classes et de valeurs
d’attributs. C’est facile à dire, mais difficile à réaliser.
Cette opération est appelée la « STRATIFICATION », et on parle de « Stratified Hold out ».
C’est un « Hold out » ou la division base d’apprentissage, base de test ne s’est pas faite
aléatoirement, mais d’une manière intelligente. C’est-à-dire, préservant les distributions de
la base originale.
Pour atténuer, les effets de cette division sur les performances du modèle, car le choix des
instances pour l’évaluation a certainement un effet sur les performances (même chose pour
l’apprentissage), il est fortement conseillé de répéter l’évaluation utilisant le « stratifiied
hold out » plusieurs fois, et de prendre la moyenne des performances comme performance.
On parle de « REPEATED STRATIFIED HOLD OUT ».
Cependant, il y a une variante du « hold out » qui a beaucoup de succes parmi les
professionnels du data mining. Elle est appelée la « Cross Validation ».
En cross-validation, vous décidez d’un nombre fixe de PARTITIONS de l’ensemble de
données. Supposons 3. Votre ensemble de données sera partionné (divisé) en 3 sousensembles (partitions) de taille égale. Et, on utilisera à tour de rôle, 2 partitions pour
l’apprentissage, et une partition pour l’évaluation.
Combien de fois ?
3 fois, puisque on a :
1. Partition 1 et 2 base d’apprentissage, Partition 3 base de test
2. Partition 1 et 3 base d’apprentissage, Partition 2 base de test
3. Partition 2 et 3 base d’apprentissage, Partition 1 base de test
Bien sûr, la performance du modèle, sera la moyenne des performances.
Nous l’appelerons un « 3 fold cross validation ».
On pourra faire la stratification, et ça sera un Stratified 3 fold cross validtion.
On pourra répéter l’opération, et on aura un repeated stratified 3 fold cross validation.
Le 3 n’était qu’un exemple. Je pouvais choisir une valeur. Mais le principe reste le même.
C’est-à-dire N quelconque, on divise l’ensemble de donnée en N partition. On utilise (N-1)
partitions pour l’apprentissage, et la partition restante pour l’évaluation. On répète cela N
fois. On prend la moyenne des performances.
Les chercheurs ont une préférence pour N=10. La Stratified 10-fold cross validation.
Une variante de la cross validation est la « Leave One Out » (laisser une à part), pas très
utilisée. Elle consiste à utiliser toutes vos instances pour l’apprentissage sauf une. Le test se
fera sur cette instance, mais comme cela se répètera (rappel cross validation), autant de fois
qu’il y a d’instance, vous allez tester sur toutes les instances.
Il est clair, qu’elle n’est pas très pratique. Si vous un dataset de 10000 instances, vous allez
développer 9999 modèles (très très couteux), et faire 10000 évaluations.
Vous allez trouver toutes ces techniques d’évaluation déjà présentes sur WEKA.
Pour le premier TP dont l’énoncé viendra très prochainement, il s’agira de prouver que
vous avez commencé à maitriser WEKA et ses fonctionnalité, et puis que vous avez
compris les méthodes d’évaluations (cours d’aujourd’hui) et les mesures d’évaluations
(prochain cours).
Donc, très important de lire plusieurs fois et comprendre ce cours, pour les prochains TPs.
En plus, l’examen du module « Data mining » sera orienté cours beaucoup plus que
l’examen du module « apprentissage automatique », car pas de TD. Donc, n’attendez pas
le 10ème cours pour commencer à les étudier.
Téléchargement