Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Arbres de décision et Random Forest

Objectif du chapitre

Les deux derniers chapitres ont présenté les notions de base des algorithmes de régression linéaire et de régression logistique. Ce chapitre va aborder les arbres de décision et les algorithmes de type Random Forest.

Les arbres de décision permettent de découper un ensemble d’observations en groupes homogènes en se basant sur des règles appliquées sur les variables descriptives.

Les algorithmes Random Forest permettent d’étendre les notions d’arbres de décision afin de construire des modèles prédictifs plus stables.

Parmi les algorithmes les plus connus pour la construction d’arbres de décision, on peut citer CART (Classification And Regression Tree) qui a été introduit par Leo Breiman dans la première moitié des années 1980. Les algorithmes de forêts aléatoires ou Random Forest ont quant à eux été introduits au tout début des années 2000.

En plus de leur efficacité, les algorithmes de Random Forest et les arbres de décision sont très faciles à comprendre et très intuitifs.

L’objectif de ce chapitre est d’introduire les concepts de base des arbres de décision et des algorithmes Random Forest. Un exemple d’application d’un algorithme Random Forest sera également développé.

À la fin de ce chapitre, le lecteur aura abordé :

  • les notions de base des arbres de décision,

  • les notions de base de l’algorithme Random Forest,

  • l’application de Random Forest avec Scikit-learn pour prédire si un e-mail donné est un spam ou pas.

1. Construction d’un arbre de décision

Les algorithmes Random Forest sont basés sur les arbres de décision. C’est pour cette raison que cette section montre, sur un exemple, le schéma général de construction d’un arbre de décision.

Prenons une base d’apprentissage constituée d’un ensemble d’observations représentées par les carrés et les triangles de la figure 9-1 ci-après. Ces observations sont définies dans un espace à deux dimensions.

Supposons que pour cet exemple les deux variables prédictives sont la variable...

Problème de surapprentissage avec un arbre de décision

Nous avons abordé le problème de surapprentissage au premier chapitre où nous avons montré un exemple illustratif relatif au problème de surapprentissage. Avec L’algorithme de construction des arbres de décision, le problème de surapprentissage est souvent rencontré lorsque la taille de ces arbres est importante. En effet, les modèles associés à des arbres de décision complexes présentent un risque plus élevé d’épouser exactement la forme des données d’apprentissage !

Pour mieux comprendre et faire l’association entre un arbre de décision complexe et le problème de surapprentissage, il suffit d’imaginer le cas extrême d’un arbre de décision qui contient un nombre de feuilles égal au nombre d’observations présentes dans le jeu de données d’apprentissage ! Avec un tel arbre de décision, où chaque feuille correspond à une observation, le pouvoir de généralisation est généralement médiocre. En effet, dans ce cas, cet arbre de décision va réaliser des prédictions correctes à 100 % sur les données d’apprentissage, mais ce ne sera certainement pas le cas sur les données de test....

Random Forest

Comme mentionné au début de ce chapitre, l’objectif ici est d’introduire les notions de base des arbres de décision et de Random Forest sans trop entrer dans les détails. L’objectif principal est de comprendre le fonctionnement général de ces algorithmes et de les appliquer à un exemple concret avec Scikit-learn.

Si nous observons de plus près les étapes de construction d’un arbre de décision que nous avons utilisées dans l’exemple précédent, nous constatons qu’à chacune de ces étapes, nous aurions pu choisir des règles de décision différentes. En effet, à partir d’un même jeu de données d’apprentissage, nous pouvons construire des arbres de décision qui seraient sensiblement différents les uns des autres. Ces différences peuvent influencer de façon significative les résultats issus de l’utilisation de ces arbres de décision. Ainsi, des arbres de décision construits à partir des mêmes données d’apprentissage peuvent donner des résultats de décision contradictoires !

Sans perdre en généralités, l’algorithme Random Forest propose de construire plusieurs arbres de décision à partir d’un ensemble d’échantillons...

Exemple de Random Forest avec Scikit-learn

Cette section montre comment appliquer un algorithme de Random Forest sur un jeu de données issu du site https://archive.ics.uci.edu/ml/datasets/spambase.

Il s’agit dans cet exemple de construire un modèle pour prédire si un e-mail est un spam ou pas. La base d’apprentissage est constituée d’un jeu de données défini par 4601 observations, et chaque observation correspond à un e-mail défini par 58 variables, voir le fichier spambase.csv.

Ces variables sont définies comme suit :

  • Les 48 premières variables sont des variables numériques continues définies dans l’intervalle [0,100]. Chaque variable indique le taux de présence d’un mot. Ce taux est calculé comme suit :

    images/09eq06.PNG

    Un mot est une suite de caractères alphanumériques limités par un caractère non alphanumérique ou par le caractère de fin de chaîne de caractères.

  • Six variables numériques continues définies dans l’intervalle [0,100]. Chaque variable indique le taux de présence d’un caractère. Ce taux est calculé comme suit :

    images/09eq07.PNG
  • Une variable numérique continue définie dans l’intervalle [1, ...] qui indique la moyenne des longueurs des mots écrits en lettres majuscules.

  • Une variable numérique discrète définie dans l’intervalle [1, ...] qui indique la longueur du mot le plus long écrit en lettres majuscules.

  • Une variable numérique discrète définie dans l’intervalle [1, ...] qui indique la somme des longueurs des mots écrits en lettres majuscules d’un l’e-mail.

  • Une variable nominale qui est égale à la valeur 1 lorsque l’e-mail est un spam et égale à 0 lorsque l’e-mail n’est pas un spam.

Sur les 4601 e-mails de cette base d’apprentissage, 1813 sont des spams. Pour construire un modèle prédictif sur cette base d’apprentissage, veuillez suivre les étapes ci-après.

 Créez un nouveau notebook Jupyter, puis saisissez et exécutez les instructions suivantes dans une nouvelle cellule ; vous pouvez également utiliser le notebook Random_Forest-01.ipynb contenu dans le dossier Code de ce chapitre :

import pandas...

Conclusion

Ce chapitre a abordé les notions de base des arbres de décision et de l’algorithme Random Forest. Une application de Random Forest a été réalisée avec Scikit-learn pour la détection des e-mails indésirables. Tout au long de ce chapitre, nous avons insisté sur le fait que l’algorithme de construction des arbres de décision présente les deux inconvénients majeurs d’être très sensible aux observations de départ d’une part, et très sensible au choix des variables et des valeurs à utiliser pour la segmentation au niveau des nœuds d’autre part. Nous avons également abordé quelques méthodes de choix des variables de segmentation et nous avons discuté des méthodes de recherche de la profondeur optimale d’un arbre de décision.