SlideShare a Scribd company logo
1 of 37
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
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
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
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
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
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
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
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
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 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)
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
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 Cost
Expensive Standard Cheap
Car Train Gender
Male Female
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

What's hot

Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfZizoAziz
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdfOuailChoukhairi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction généraleMohamed Heny SELMI
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueYosra ADDALI
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionInes Ouaz
 
Introduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep LearningIntroduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep LearningNcib Lotfi
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Mohamed Heny SELMI
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
Biométrie d'Empreinte Digitale Power Point
Biométrie d'Empreinte Digitale Power PointBiométrie d'Empreinte Digitale Power Point
Biométrie d'Empreinte Digitale Power PointIntissar Dguechi
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesMohamed Heny SELMI
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 

What's hot (20)

Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdf
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
Introduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep LearningIntroduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep Learning
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Biométrie d'Empreinte Digitale Power Point
Biométrie d'Empreinte Digitale Power PointBiométrie d'Empreinte Digitale Power Point
Biométrie d'Empreinte Digitale Power Point
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes Principales
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 

Similar to 5.4 Arbres et forêts aléatoires

Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)rchbeir
 
Xavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionXavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionKezhan SHI
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdfimane26
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistiqueBoris Guarisma
 

Similar to 5.4 Arbres et forêts aléatoires (6)

5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
 
Xavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régressionXavier Milaud - Techniques d'arbres de classification et de régression
Xavier Milaud - Techniques d'arbres de classification et de régression
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdf
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
arbres de decision.ppt
arbres de decision.pptarbres de decision.ppt
arbres de decision.ppt
 

More from Boris Guarisma

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaireBoris Guarisma
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisinsBoris Guarisma
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaireBoris Guarisma
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel RBoris Guarisma
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistiqueBoris Guarisma
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4jBoris Guarisma
 

More from Boris Guarisma (8)

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisins
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaire
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistique
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4j
 

5.4 Arbres et forêts aléatoires

  • 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. 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. 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. 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. 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. 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. 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. 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. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 9
  • 10. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 10
  • 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. 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. Exemple de partitionnement 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - FORÊT D'ARBRES DÉCISIONNELS 13
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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