SlideShare une entreprise Scribd logo

5.4 Arbres et forêts aléatoires

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.

1  sur  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

Recommandé

Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisionsMariem Chaaben
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 

Contenu connexe

Tendances

Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesSana Aroussi
 
Chp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique DécisionnelleChp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique DécisionnelleLilia Sfaxi
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...tuxette
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
Clustering: Méthode hiérarchique
Clustering: Méthode hiérarchiqueClustering: Méthode hiérarchique
Clustering: Méthode hiérarchiqueYassine Mhadhbi
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
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
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueYosra ADDALI
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
Rapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleRapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleYanis Marchand
 
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
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data HaShem Selmi
 

Tendances (20)

Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Deep learning
Deep learningDeep learning
Deep learning
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
 
Chp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique DécisionnelleChp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique Décisionnelle
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
Clustering: Méthode hiérarchique
Clustering: Méthode hiérarchiqueClustering: Méthode hiérarchique
Clustering: Méthode hiérarchique
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Rapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleRapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence Artificielle
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
Regression logistque
Regression  logistqueRegression  logistque
Regression logistque
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
 

Plus de 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.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistiqueBoris 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
 

Plus de Boris Guarisma (10)

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.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
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
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
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
 

Dernier

Les Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalLes Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalcontact Elabe
 
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV
 
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfAmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfInstitut de l'Elevage - Idele
 

Dernier (8)

Les Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalLes Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radical
 
3 Bidet GRH en viticulture 18 oct 2023.pdf
3 Bidet GRH en viticulture 18 oct 2023.pdf3 Bidet GRH en viticulture 18 oct 2023.pdf
3 Bidet GRH en viticulture 18 oct 2023.pdf
 
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
 
4 Sigwalt Annie saisonniers 18 octobre 2023.pdf
4 Sigwalt Annie  saisonniers 18 octobre 2023.pdf4 Sigwalt Annie  saisonniers 18 octobre 2023.pdf
4 Sigwalt Annie saisonniers 18 octobre 2023.pdf
 
Travail en volière Ruch 11 mars 2024 déf.pdf
Travail en volière Ruch 11 mars 2024 déf.pdfTravail en volière Ruch 11 mars 2024 déf.pdf
Travail en volière Ruch 11 mars 2024 déf.pdf
 
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
 
1 Astié travaux station Auray 18 oct 2023.pdf
1 Astié travaux station Auray 18 oct 2023.pdf1 Astié travaux station Auray 18 oct 2023.pdf
1 Astié travaux station Auray 18 oct 2023.pdf
 
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfAmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
 

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