Forêt d’arbres
décisionnels
DECISION TREES, RANDOM FOREST
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'A...
Objectifs
 Comprendre les principes de construction des arbres de décision
 Comprendre la différence entre les arbres de...
Sommaire
• Introduction aux arbres de décision
• Arbres de régression
• Arbres de classification
• Exemple de partitionnem...
Introduction aux arbres de décision
• Méthode classique en apprentissage supervisé
• Modèle qui prédit la valeur d'une rép...
Introduction aux arbres de décision
• L'arbre est construit en séparant l'ensemble des données en sous-ensembles (ou régio...
Introduction aux arbres de décision
• Les algorithmes divisent l'arbre du sommet vers les feuilles
en choisissant à chaque...
Arbres de régression
• Critère de partitionnement: trouver les régions
Rj qui minimisent le RSS donné par
• est la moyenne...
Arbres de classification
• Critère de partitionnement: recours à des
heuristiques basées sur la mesure d’impureté
d’un ens...
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 9
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 10
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 11
pour cett...
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 12
3 sous en...
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 13
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 14
Travel Co...
Exemple de partitionnement
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 15
2 sous en...
R package rpart
unArbre <- rpart(formula = RainTomorrow ~ ., data = train_data)
30/06/2016 BORIS GUARISMA - FORMATION DATA...
R package rpart
n= 293
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 293 47 No (0.83959044 0.160409...
Post-élagage
• Problématique: on peut obtenir un arbre très complexe,
• problème de surajustement (overfitting)
• performa...
Post-élagage: Cost Complexity Pruning
Minimal Cost-Complexity Pruning (MCCP) (Breiman et al.,84)
• Nous générons un arbre ...
Post-élagage: Cost Complexity Pruning
Minimal Cost-Complexity Pruning (MCCP) (Breiman et al.,84)
• On définit les valeurs ...
Post-élagage: Cost Complexity Pruning
• n
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNE...
R package rpart
>printcp(unArbre)
Classification tree:
rpart(formula = RainTomorrow ~ ., data = train_data)
Variables actu...
R package rpart
>printcp(unArbre)
Classification tree:
rpart(formula = RainTomorrow ~ ., data = train_data)
Variables actu...
R package rpart
>printcp(unArbre)
Classification tree:
rpart(formula = RainTomorrow ~ ., data = train_data)
Variables actu...
R package rpart
>pred <- predict(ArbreElague, newdata = test_data, type = "class")
# confusion matrix
>confusion <- table(...
Avantages et limites des arbres de
décision
 Facile à expliquer aux gens, surtout aux managers ! … même plus facile à exp...
Bagging et forêt d’arbres décisionnels
• On fait tourner en parallèle un grand nombre d’arbres de
décisions construits alé...
Bagging et forêt d’arbres décisionnels
Bagging
• Pas besoin d’élagage, car on contrôle la variance
avec bagging.
• Alors o...
Bagging et forêt d’arbres décisionnels
Bagging
• Soit une observation qui se trouve dans
plusieurs ensembles OOB, alors on...
Bagging et forêt d’arbres décisionnels
Random forest
• En termes statistiques, si les arbres sont
décorrélés, cela permet ...
Bagging et forêt d’arbres décisionnels
Bagging ou Random Forest
• L’importance des variables (variable importance)
• Cas d...
Bagging et forêt d’arbres décisionnels
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS ...
R package randomForest
>bagging1 <- randomForest(RainTomorrow ~ .,
data=na.omit(train_data),
mtry=20,
importance=TRUE)
>fo...
R package randomForest
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 34
>forest1
Call...
R package randomForest
>pred.bag1 <- predict(bagging1, newdata = test_data, type = "class")
# confusion matrix
>confusion1...
R package randomForest
>imp.df <- as.data.frame(importance(forest1, type = 2))
>imp.df$vars <- row.names(imp.df)
>imp.df %...
Bibliographie
• James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
• Williams G., ...
Prochain SlideShare
Chargement dans…5
×

5.4 Arbres et forêts aléatoires

558 vues

Publié le

Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.

Publié dans : Données & analyses
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
558
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

5.4 Arbres et forêts aléatoires

  1. 1. Forêt d’arbres décisionnels DECISION TREES, RANDOM FOREST 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 1
  2. 2. Objectifs  Comprendre les principes de construction des arbres de décision  Comprendre la différence entre les arbres de régression et de classification  Connaître les limites des arbres de décision  Comprendre comment le bagging est une solution aux limites des arbres de décision  Comprendre comment random forest (forêt d’arbres aléatoires) en se basant sur le principe de bagging, est une autre solution aux limites des arbres de décision 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 2
  3. 3. Sommaire • Introduction aux arbres de décision • Arbres de régression • Arbres de classification • Exemple de partitionnement avec l’index d’entropie de Shannon • Post-élagage • Avantages et limites des arbres de décision • Bagging et forêt d’arbres • Bibliographie 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 3
  4. 4. Introduction aux arbres de décision • Méthode classique en apprentissage supervisé • Modèle qui prédit la valeur d'une réponse (ou variable-cible) depuis la valeur de plusieurs descripteurs (ou variables prédictives) • Les arbres de classification (Classification Tree) permettent de prédire à quelle classe la réponse appartient. • Les arbres de régression (Regression Tree) permettent de prédire une quantité réelle. • Interprétabilité, facile à expliquer, suit un processus de prise de décision plus « naturel » … 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 4 nœuds intérieurs feuilles ou nœuds terminaux branche nœud racine
  5. 5. Introduction aux arbres de décision • L'arbre est construit en séparant l'ensemble des données en sous-ensembles (ou régions Rj) en fonction de la valeur d'une variable prédictive. • Ce processus est répété sur chaque sous-ensemble obtenu de manière récursive, il s'agit donc d'un partitionnement récursif. 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 5 James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
  6. 6. Introduction aux arbres de décision • Les algorithmes divisent l'arbre du sommet vers les feuilles en choisissant à chaque étape une variable d'entrée qui réalise le meilleur partage de l'ensemble d'objets • Pour choisir la variable de séparation sur un nœud, les algorithmes testent les différentes variables d'entrée possibles et sélectionnent celle qui maximise un critère donné. • Algorithme glouton (greedy): recherche à chaque nœud de l'arbre le partage optimal, dans le but d'obtenir le meilleur partage possible sur l'ensemble de l'arbre de décision 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 6 James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
  7. 7. Arbres de régression • Critère de partitionnement: trouver les régions Rj qui minimisent le RSS donné par • est la moyenne de la réponse dans la région Rj • Toute observation se trouvant dans la région Rj aura la même prédiction 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 7 James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
  8. 8. Arbres de classification • Critère de partitionnement: recours à des heuristiques basées sur la mesure d’impureté d’un ensemble • mesure nulle, si les observations sont homogènes, appartenant à une même classe • mesure maximale, si les observations sont reparties de manière égale sur toutes les classes • Index Gini • Index de l’entropie 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 8 proportions d’observations appartenant à la classe k = {1, .. K} classe … et c’est le gain d’entropie associé à une variable que l’on utilisera comme critère pour le partitionnement. algorithme CART algorithmes ID3 et C4.5
  9. 9. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 9
  10. 10. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 10
  11. 11. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 11 pour cette partie de l’exemple: • A = variable Gender • Modalités(A) = {Male, Female} Ev = sous ensemble d’observations de E admettant v comme modalité relativement à la variable A Travel Cost Expensive Standard Cheap (racine)
  12. 12. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 12 3 sous ensembles Ev admettant v comme modalité relativement à la variable Travel Cost Travel Cost Expensive Standard Cheap (racine) Car Train
  13. 13. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 13
  14. 14. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 14 Travel Cost Expensive Standard Cheap Car Train Gender Male Female
  15. 15. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 15 2 sous ensembles Ev admettant v comme modalité relativement à la variable Gender Travel Cost Expensive Standard Cheap Train Gender Male Female Bus Car Ownership 0 1 Bus Train Car
  16. 16. R package rpart unArbre <- rpart(formula = RainTomorrow ~ ., data = train_data) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 16 … … CLASS
  17. 17. R package rpart n= 293 node), split, n, loss, yval, (yprob) * denotes terminal node 1) root 293 47 No (0.83959044 0.16040956) 2) Cloud3pm< 7.5 272 29 No (0.89338235 0.10661765) 4) WindSpeed3pm< 42.5 265 22 No (0.91698113 0.08301887) 8) Pressure3pm>=1006.15 252 16 No (0.93650794 0.06349206) 16) Humidity9am< 94.5 244 12 No (0.95081967 0.04918033) 32) Cloud3pm< 5.5 167 2 No (0.98802395 0.01197605) * 33) Cloud3pm>=5.5 77 10 No (0.87012987 0.12987013) 66) MaxTemp< 28.6 70 5 No (0.92857143 0.07142857) * 67) MaxTemp>=28.6 7 2 Yes (0.28571429 0.71428571) * 17) Humidity9am>=94.5 8 4 No (0.50000000 0.50000000) * 9) Pressure3pm< 1006.15 13 6 No (0.53846154 0.46153846) * 5) WindSpeed3pm>=42.5 7 0 Yes (0.00000000 1.00000000) * 3) Cloud3pm>=7.5 21 3 Yes (0.14285714 0.85714286) * 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 17 graphique généré avec package rattle, fonction fancyRpartPlot
  18. 18. Post-élagage • Problématique: on peut obtenir un arbre très complexe, • problème de surajustement (overfitting) • performance pauvre en généralisation • Idée: élaguer après la construction de l’arbre entier, • éliminer en remontant les sous-arbres, optimisant un certain critère d’élagage en vue d’améliorer les performances en généralisation. • Nombreuses méthodes. • Minimal Cost-Complexity Pruning (MCCP) (Breiman et al.,84) • Reduced Error Pruning (REP) (Quinlan,87,93) • Minimum Error Pruning (MEP) (Niblett & Bratko,86) • Critical Value Pruning (CVP) (Mingers,87) • Pessimistic Error Pruning (PEP) (Quinlan,87) • Error-Based Pruning (EBP) (Quinlan,93) (utilisé dans C4.5) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 18
  19. 19. Post-élagage: Cost Complexity Pruning Minimal Cost-Complexity Pruning (MCCP) (Breiman et al.,84) • Nous générons un arbre de régression T0 large et complexe (donc |T0| grand) • Au lieu de considérer chaque sous-arbre possible, nous considérons une séquence d’arbres indexés par un paramètre non négatif α (cost complexity parameter) • Chaque valeur α de correspond à un sous-arbre T ⊂ T0 tel que est le plus petit possible. 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 19 nombre de feuilles ou complexité du sous-arbre Rm est la région correspondante au m-ième nœud interne
  20. 20. Post-élagage: Cost Complexity Pruning Minimal Cost-Complexity Pruning (MCCP) (Breiman et al.,84) • On définit les valeurs α = {0, …, αr } que l’on souhaite tester. • A fur et à mesure que l’on augment la valeur de α on supprime des branches et l’on obtient une séquence d’arbres (fonction de α) • On applique une validation croisée (k-fold cross-validation) pour obtenir le meilleur α 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 20
  21. 21. Post-élagage: Cost Complexity Pruning • n 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 21 James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014 MSE car on est dans le cas d’un arbre de régression. Si classification, alors on aurait un taux d’erreur de classification arbre T0
  22. 22. R package rpart >printcp(unArbre) Classification tree: rpart(formula = RainTomorrow ~ ., data = train_data) Variables actually used in tree construction: [1] Cloud3pm Humidity9am MaxTemp Pressure3pm WindSpeed3pm Root node error: 47/293 = 0.16041 n= 293 CP nsplit rel error xerror xstd 1 0.319149 0 1.00000 1.00000 0.13365 2 0.148936 1 0.68085 0.68085 0.11360 3 0.015957 2 0.53191 0.57447 0.10534 4 0.010000 6 0.46809 0.63830 0.11041 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 22 5 variables utilisées pour le partitionnement nb. de RainTomorrow = 'Yes' / nb. total d’observations dans l’ensemble d’apprentissage l’algorithme s’arrête si xerror repart à la hausse. On peut également afficher une corbe avec plotcp(unArbre) on prend le Root node error comme une base 100, alors le premier split réduit l’erreur de validation croisée (cross validation error ou xerror) à 68 cross-validation error par défaut: 10-fold
  23. 23. R package rpart >printcp(unArbre) Classification tree: rpart(formula = RainTomorrow ~ ., data = train_data) Variables actually used in tree construction: [1] Cloud3pm Humidity9am MaxTemp Pressure3pm WindSpeed3pm Root node error: 47/293 = 0.16041 n= 293 CP nsplit rel error xerror xstd 1 0.319149 0 1.00000 1.00000 0.13365 2 0.148936 1 0.68085 0.68085 0.11360 3 0.015957 2 0.53191 0.57447 0.10534 4 0.010000 6 0.46809 0.63830 0.11041 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 23 taux d’erreur d’apprentissage Root node error * rel error 0.16041 * 0.46809 = 0.07508 taux d’erreur cross-validation Root node error * xerror 0.16041 * 0.63830 = 0.10238 rappel: c’est une estimation de l’erreur de test cross-validation error
  24. 24. R package rpart >printcp(unArbre) Classification tree: rpart(formula = RainTomorrow ~ ., data = train_data) Variables actually used in tree construction: [1] Cloud3pm Humidity9am MaxTemp Pressure3pm WindSpeed3pm Root node error: 47/293 = 0.16041 n= 293 CP nsplit rel error xerror xstd 1 0.319149 0 1.00000 1.00000 0.13365 2 0.148936 1 0.68085 0.68085 0.11360 3 0.015957 2 0.53191 0.57447 0.10534 4 0.010000 6 0.46809 0.63830 0.11041 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 24 CP: cost complexity (α) α = 0.015957 pour le min(xerror) = 0.57, alors on peut faire un élagage (pruning) avec la fonction ArbreElague <- prune(unArbre, cp = 0.016) cross-validation error
  25. 25. R package rpart >pred <- predict(ArbreElague, newdata = test_data, type = "class") # confusion matrix >confusion <- table(pred, test_data$RainTomorrow) >confusion pred No Yes No 128 28 Yes 9 6 # misclassification error >1 - sum(diag(confusion))/sum(confusion) 0.2163 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 25
  26. 26. Avantages et limites des arbres de décision  Facile à expliquer aux gens, surtout aux managers ! … même plus facile à expliquer qu’une régression linéaire  L’affichage de l’arbre facilite fortement l’interprétation surtout lorsque l’arbre est de petit taille.  Les arbres peuvent gérer aussi bien les variables quantitatives et que les catégorielles sans besoin de numériser les modalités des dernières.  L’exactitude de la prévision n’est pas aussi bonne que celle des autres méthodes supervisées (régressions linéaire, régressions logistique, etc.)  Les arbres de décisions ne sont pas robustes: un petit changement dans les données d’apprentissage peut largement modifier l’arbre généré. • Solutions: bagging, random forest 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 26
  27. 27. Bagging et forêt d’arbres décisionnels • On fait tourner en parallèle un grand nombre d’arbres de décisions construits aléatoirement, avant de les moyenner. • Random forest fait partie de la famille d’algorithmes générateurs d’ensembles tels que bagging et boosting. Bagging • Echantillonnage avec remplacement (boostrap) de l’ensemble d’apprentissage; une observation peut apparaître plusieurs fois dans un même échantillon (bag). • Chaque bag contient ~2/3 des observations de l’ensemble d’apprentissage; ~1/3 des observations restera en dehors du bag (out-of-bag ou OOB) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 27
  28. 28. Bagging et forêt d’arbres décisionnels Bagging • Pas besoin d’élagage, car on contrôle la variance avec bagging. • Alors on peut « faire pousser » des gros arbres ! • L’algorithme construit des centaines d’arbres décisionnels et les combine en un seul modèle. • Dans le cas d’une classification, on prendra comme résultat le vote majoritaire. • Dans le cas d’une régression, on prendra comme résultat la moyenne. 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 28
  29. 29. Bagging et forêt d’arbres décisionnels Bagging • Soit une observation qui se trouve dans plusieurs ensembles OOB, alors on peut prévoir cette observation moyennant tous les modèles (arbres) construits avec les bag correspondants. • Si on applique cette méthode à chaque observation se trouvant dans plusieurs ensembles OOB, on peut alors calculer alors une erreur OOB ou OOB error rate. • Soit on boostrap la totalité des données et on valide avec les OOB pour chaque observation. • Soit partitionnement aléatoire « apprentissage + test » et on boostrap l’ensemble d’apprentissage. 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 29 X1 X2 X3 X4 Y bag N X1 X2 X3 X4 Y bag 1 X1 X2 X3 X4 Y bag 2 … échantillonnage avec remplacement une observation peut être présente plusieurs fois dans un même bag X1 X2 X3 X4 Y X1 X2 X3 X4 Y X1 X2 X3 X4 Y …TEST TEST TEST X1 X2 X3 X4 Y X1 X2 X3 X4 Y X1 X2 X3 X4 Y …OOB 1 OOB 2 OOB N
  30. 30. Bagging et forêt d’arbres décisionnels Random forest • En termes statistiques, si les arbres sont décorrélés, cela permet de réduire la variance des prévisions. • Comme pour le bagging, on construit des arbres de décision sur des échantillons bootstrap. • Au moment d’effectuer le partitionnement on ne considère que m variables (m < p) pris aléatoirement. • Une nouvelle sélection aléatoire de m variables est effectuée à chaque split. • m ~ p/3 (régression), m ~ 𝒑 (classification) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 30 X1 X2 X3 X4 Y bag N X1 X2 X3 X4 Y bag 1 X1 X2 X3 X4 Y bag 2 … échantillonnage avec remplacement une observation peut être présente plusieurs fois dans un même bag X1 X2 X3 X4 Y X1 X2 X3 X4 Y X1 X2 X3 X4 Y …TEST TEST TEST X1 X2 X3 X4 Y X1 X2 X3 X4 Y X1 X2 X3 X4 Y …OOB 1 OOB 2 OOB N splits avec m variables à chaque fois splits avec m variables à chaque fois splits avec m variables à chaque fois auchoix,voirslide précédent
  31. 31. Bagging et forêt d’arbres décisionnels Bagging ou Random Forest • L’importance des variables (variable importance) • Cas de régression • On peut calculer de combien le RSS a diminué dû aux splits effectués avec la variable considérée; on moyenne le résultat sur le nombre d’arbres correspondants. • Cas de classification • On peut calculer de combien l’index de Gini à diminué dû aux splits effectués avec la variable considérée; on moyenne le résultat sur le nombre d’arbres correspondants. • Plus le résultat est grand plus la variable est « importante » 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 31 Mean Decrease Accuracy Mean Decrease Gini
  32. 32. Bagging et forêt d’arbres décisionnels 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 32 James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
  33. 33. R package randomForest >bagging1 <- randomForest(RainTomorrow ~ ., data=na.omit(train_data), mtry=20, importance=TRUE) >forest1 <- randomForest(RainTomorrow ~ ., data=na.omit(train_data), importance=TRUE) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 33 pour faire du bagging on split avec toutes les variables: mtry=20 (ici 20 variables) pour faire du random forest soit on spécifie le nb de variables avec mtry, soit on ne spécifie rien et mtry = 𝑝 par défaut (ici 20 variables) note: pour une régression mtry=p/3 par défaut
  34. 34. R package randomForest 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 34 >forest1 Call: randomForest(formula = RainTomorrow ~ ., data = na.omit(train_data), importance = TRUE) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 4 OOB estimate of error rate: 12.08% Confusion matrix: No Yes class.error No 210 7 0.03225806 Yes 25 23 0.52083333 >bagging1 Call: randomForest(formula = RainTomorrow ~ ., data = na.omit(train_data), mtry = 20, importance = TRUE) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 20 OOB estimate of error rate: 13.58% Confusion matrix: No Yes class.error No 204 13 0.05990783 Yes 23 25 0.47916667
  35. 35. R package randomForest >pred.bag1 <- predict(bagging1, newdata = test_data, type = "class") # confusion matrix >confusion1 <- table(pred.bag1, test_data$RainTomorrow) # misclassification error >1 - sum(diag(confusion1))/sum(confusion1) 0.22 >pred.forest1 <- predict(forest1, newdata = test_data, type = "class") # confusion matrix >confusion2 <- table(pred.forest1, test_data$RainTomorrow) # misclassification error >1 - sum(diag(confusion2))/sum(confusion2) 0.14 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 35
  36. 36. R package randomForest >imp.df <- as.data.frame(importance(forest1, type = 2)) >imp.df$vars <- row.names(imp.df) >imp.df %>% arrange(desc(MeanDecreaseGini)) MeanDecreaseGini vars 1 9.4715806 Pressure3pm 2 7.1163744 Humidity3pm 3 6.9656402 Sunshine 4 6.0338563 Cloud3pm 5 5.7112460 WindGustSpeed 6 5.5796392 Humidity9am … 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 36 pour une classification on considère l’index de Gini
  37. 37. Bibliographie • James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014 • Williams G., Data Mining with Rattle and R, ISBN 9781441998897, Springer, 2011 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 37

×