Traveaux Dirigés de Fouille de Données 3

publicité
Traveaux Dirigés de Fouille de Données 3
G. Marcou, N. Lachiche
19 décembre 2007
1
Introduction
Ce TD sera consacré aux arbres de décision et de régression, les transformations en règles
et les forêts. Le cas de la régression sera particulièrement détaillé.
2
Construction des arbres de décision
Cette partie est dédiée à la construction d’abres de décision.
2.1 Algorithme de base
La construction d’un arbre de décision à l’aide d’attributs nominal est un processus itératif.
1. Choisir un attribut
2. Attribuer une branche à chaque valeur de l’attribut
3. recommencer pour chaque feuille dont représentant une population inhomogène
Cet algorithme possède plusieurs éléments implicites.
Question 1 Comment les attributs à chaque étape sont-ils choisis ? Sur quel critère l’algorithme s’arrête-t-il ?
1
Cet algorithme est disponible dans Weka, dans la rubrique Classify puis dans les méthodes
tree. Il est nommé ID3 [3]. Cet algorithme a besoin de variables nominales et ne tolère pas
les valeurs manquantes. Une solution est donc de binariser les instances à l’aide de la méthode
NumericToBinary1 .
Question 2
Réaliser un arbre ID3. Quelles sont les performances de cette méthode ?
2.2 L’algorithme C4.5
L’algorithme C4.5 [5] consiste en une série d’amélioration de l’algorithme précédent. Il est
très représenté parce qu’il est le dernier a avoir été décrit dans la littérature. Les versions plus
récentes sont commerciales et ne font pas l’objet de publications.
2.2.1 Attributs numériques
La première amélioration concerne la gestion de données numériques. On déduis de ces
attributs des classes en séparant le domaine dans lequel l’attribut prend ses valeurs en interval
ne se recouvrant pas. La division la plus pertinante est sélectionnée. Dans le cas de l’algorithe
C4.5, le domaine de valeur d’un attribut n’est séparé qu’en deux interval à un noeud.
Question 3 Comment évalue-t-on la pertinance de la discrétisation d’un attribut numérique ?
1
Une autre solution est d’utiliser la méthode Discretize
2
2.2.2 Valeurs manquantes
La seconde amélioration concerne la gestion des valeurs manquantes. Lorsqu’un example
ne possède pas de valeur pour un attribut associé à un noeud de décision, celui-ci est dupliqué
dans chaque branche et chaque copie reçoit un poid correspondant à la probabilité a priori de
passer par cette branche.
2.2.3 Elagage
Cette opération consiste à simplifier l’arbre obtenu. Une première possibilité est de couper
toutes les branches d’un noeud (subtree replacement). Une seconde possibilité est de remplacer un noeud par la racine d’un des sous-arbres qui en descend (subtree raising). Les exemples
classés dans les autres branches sont reclassés.
Pour décider de modifier un noeud, on définis un estimateur pessimiste de l’erreur e de
classification de chaque noeud ou feuille de l’arbre. De façon général un estimateur pessimiste
part d’une mesure f de l’erreur et lui ajoute une pénalité positive ω qui dépend du noeud ou de
la feuille i considérée.
L’algorithme C4.5 utilise l’estimateur pessimiste suivant :
e=
f+
z2
2N
+z
q
1
2
f
− fN
N
2
+ zN
+
z2
4N 2
(1)
On note f le ratio du nombre d’exemples mal classés E au nombre d’exemples parvenus au
noeud N. Par ailleurs z est le seuil de confiance d’une distribution normale réduite. Le niveau
de confiance habituellement retenu pour l’algorithme C4.5 est de 25%.
Question 4
Dans la formule 1, quel est la mesure de l’erreur et quelle pénalité est apportée ?
Question 5
Comment décider de modifier un noeud ?
3
Une version améliorée de l’algorithme C4.5 est disponible dans Weka sous le nom J4.8. On
y remarquera toutes les possibilités énumérées ci-dessus. De plus l’interface propose de réaliser
une estimation de l’erreur de chaque noeud ou feuille par validation croisée.
Question 6 Réaliser différents arbres en utilisant cet algorithme. Comment évolue l’abre si
l’option subtreeRaising est fausse et que l’on fait varier la niveau de confiance (confidenceFactor) ?
Si l’option subtreeRaising est vraie, existe-t-il une valeur du niveau de confiance qui vous permette d’en oberver l’effet ?
3
Arbres de régression
Pour construire des modèles quantitatifs, on utilise des arbres de régression ou des arbres de
modèles. Les prédictions des premiers sont les moyennes de valeurs des concepts dans chaque
feuille. Dans les second, chaque feuille est associé à un modèle linéaire.
3.1 Algorithme M5
La construction d’un tel arbre diffère également du cas précédent. Ici on s’intéressera à
l’algorithe M5 [4]. Celui-ci est accessible dans Weka sous le nom M5P.
On choisira l’attribut utilisé pour diviser le jeu de données à chaque noeud en fonction de
façon a minimiser l’erreur de prédiction. Cette erreur est estimée en un noeud i en y mesurant
la déviation standard si du concept. En somme, on sélectionnera la division des données qui
maximise la réduction de déviation standard :
RDS = si −
X
k=1
C
Nk
sk
Ni
(2)
Dans cette formule, chaque noeud k est peuplé par Nk exemples et on considère une division
du noeud i en C branches.
4
Question 7
Comment interpretter la formule 2 ?
Le processus de construction de l’arbre s’achève quand la quantité à modéliser ne varie plus
ou peu dans les feuilles.
3.1.1 Régularisation du modèle
A mesure que les examples parcourent l’espace définis par les attributs, ils changent brutalement de feuille et donc de modèle. Ceci conduit à des discontinuités dans les prédictions. Le
processus de régularisation consiste a construire des modèles moyens permettant de passer de
façon plus douce d’une feuille à l’autre de l’arbre.
Dans le cadre de l’algorithme M5, cette régularisation est réalisée en construisant des
modèles linéaires à chaque noeud de l’arbre. La valeur prédite pour un exemple est la moyenne
pondérée des prédictions de chaque modèle individuel obtenue sur chaque noeud traversé par
cet exemple.
Question 8 Réaliser un premier modèle en utilisant les paramètres par défaut, puis désactiver
la régularisation -l’option useUnsmoothed doit être vrai. Quel effet cela a-t-il sur vos calculs ?
3.1.2 Attributs nominaux
Comme l’arbre contient des modèles linéaires, les attributs nominaux ne sont pas naturellement gérés. Ils sont donc transformés en attributs binaires.
Question 9
Comment transforme-t-on des attributs nominaux en attributs binaires ?
5
3.1.3 Valeurs manquantes
A chaque étape la valeur manquante est remplacée par la moyenne de la valeur de l’attribut
sur la population d’exemple qui a atteint ce noeud. Pendant la construction, on peut également
pondérer la réduction de déviation standard par la proportion d’exemples pour lesquels l’attribut
est connu comparé au nombre d’exemple dans le noeud.
3.1.4 Elagage
Comme les arbres de décision, les arbres de régression sont élagués. L’algorithme M5 propose de construire des modèles linéaires à chaque noeud du modèle. Seuls les attributs utilisés
dans le sous-arbre considéré sont utilisés pour construire les modèles du noeud parent. L’erreur
est mesurée en utilisant l’erreur absolue moyenne.
Question 10 Qu’est-ce que l’erreur absolue moyenne -Mean Absolute Error (MAE) ?
Ici aussi un estimateur pessimiste de l’erreur est employé. Il multiplie l’erreur d’un modèle
par un facteur composé du nombre d’éléments constitutifs du modèle v et du nombre d’instances dans le noeud servant à construire le modèle n.
n+v
(3)
n−v
Comme précédemment, l’arbre est élagués chaque fois que cela permet de diminuer l’erreur
estimée.
Question 11 Construire différents arbres de modèles en utilisant l’algorithme M5. Trouver le
nombre optimum d’instances permettant d’avoir les meilleurs modèles possibles. Comment ce
comparent ces résultats quand vous contruisez des arbres de régression ?
6
4
Autres arbres
D’autres algorithmes pour construire des arbres de décision et des arbres de modèles sont
disponibles.
• LMT est une variante de l’algorithme M5 qui fait jouer le rôle des régression linéaires à
des modèles logistiques.
• REPTree est une variante rapide de l’algorithme C4.5. L’élagage est réalisé en utilisant
une méthode de validation croisée.
• NBTree est un arbre de décision couplé à un bayesien naı̈f.
• RandomTree Sélectionne au hasard un sous-ensemble d’attributs pour construire chaque
noeud de l’arbre.
Question 12 Tester ces autres algorithmes. Quelles sont vos conclusions ?
5
Apprentissage de règles
Une règle est un ensemble de condition sur les valeurs des attributs qui conduisent à une
conclusion quand à l’appartenance d’une instance à une classe.
Weka propose un nombre conséquent de méthodes pour apprendre des règles. Elles sont
accessibles dans la feuille Classify dans les méthodes rules.
7
5.1 L’algorithme 1R
Il s’agit de l’algorithme de base permettant d’arriver à une liste de décision. Cette liste est
un ensemble ordonné de règles. L’algorithme 1R consiste a extraire séquentiellement une règle
à la fois pour chaque donnée.
1. Sélectionner une classe
2. Trouver une règle permettant de classer correctement le plus grand nombre d’instances
dans cette classe sans (ou très peu) d’erreurs
3. Eliminer les instances couvertes par cette règle
4. Recommencer jusqu’à ne plus pouvoir déduire de nouvelle règle
5. A la fin, donner une classe par défaut aux instances non couvertes
Question 13 L’algorithme OneR de Weka correspond-il à ce schéma ?
Dans cet algorithme la méthode d’extraction de règles n’est pas définis. Cet algorithme est
également parfois nommé Separate and Conquer.
5.2 Régles dérivées des arbres
La construction d’un arbre de décision est par conséquent un cas particulier d’apprentissage
de règle. En fait, on peut utiliser les même éléments exposés pour l’algorithme C4.5 pour
extraire d’un arbre de décision un ensemble de règles plus expressives. Cette façon de faire
est le coeur des algorithmes PART et M5rule [2]. Ces algorithmes sont disponible sous le nom
PART et M5rule.
Ces algorithmes sont les suivant :
1. construire un arbre de décision
2. extraire la meilleure règle de l’arbre
3. éliminer du jeu d’entraı̂nement les instances couvertes par cette règle
4. recommencer jusqu’à ne plus avoir d’instances
8
Question 14 Comment se comparent les performances des méthodes PART et M5rule par
rapport aux arbres de décision construits avec C4.5 et aux arbres modèles construits avec M5 ?
6
Random Forest
Les algorithmes précédent ont le défaut de se généraliser assez mal en dépis de la procédure
d’élagage. La méthode Random Forest [1] est un exemple de méta-apprentissage : un algorithme est utilisé pour traiter les représentations de concepts issus de multiples machines d’apprentissage.
L’algorithme Random Forest est le suivant :
1. Construire un arbre dépendant d’un vecteur aléatoire
2. Collecter les prédiction de chaque arbre
3. Décider à la majorité
Les arbres générés sont donc le produit d’un processus aléatoire. Celui-ci doit garantir
que les vecteurs aléatoires caractérisant chaque arbre soient indentiquement distribués mais
indépendants.
Weka propose cet algorithme sous le nom RandomForest.
9
Question 15 Choisir le groupe aléatoire d’attribut de taille égal à 2. Comment se compare
Random Forest à un seul arbre aléatoire correspondant ?
Une autre « forêt »est disponible dans Weka. Il permet de construire des arbres alternés
en utilisant la technique du « boosting ». Certains noeuds de ces arbres, appelés noeuds de
décision, dispersent une instance dans chaque branche en lui assignant un poid différent à
chaque fois. Là encore, le résultat de la classification est décidé à la majorité.
Le « boosting »est une stratégie pour construire les différents arbres de la forêt. Après qu’un
arbre ait été construit on assigne des poids à chaque instance du jeu d’entraı̂nement de façon à
ce que les instances les plus importantes soient celles qui aient été mal prédites par les arbres
précédents. La forêt résultante de ce processus est par conséquent composée d’arbre aux propriétés prédictives complémentaires.
Cette stratégie est désignée par ADTree dans Weka. Mais son implémentation actuelle ne
permet pas de l’utiliser dans le cadre de ce TD.
7
Conclusion
Question 16 Donnez vos conclusions.
10
Références
[1] L. Breiman. Random forests. Machine Learning, 45 :5–32, 2001.
[2] E. Frank and H. Witten. Generating accurate rule sets without global optimization. Machine learning : proceedings of the fifth international conference. Morgan Kaufmann, 1998.
[3] R. Quinlan. Induction of decision trees. Machine Learning, 1(1) :81–106, 1986.
[4] R. Quinlan. Learning with Continuous Classes. Proceedings of the 5th Australian Joint
Conference on AI. World Scientific Singapore, 1992.
[5] R. Quinlan. C4.5 : Programs for machine learning. Morgan Kaufmann San Francisco,
1993.
11
Téléchargement