Random Forest, comment ça marche?

Random Forest

Dans cet article je vous explique simplement comment fonctionne un algorithme de Random Forest (forêt aléatoire) pour faire de la prédiction. Quand et comment l’utiliser, c’est par ici …

Random Forest, qu’est ce que c’est?

Cet algorithme appartient à la famille des agrégations de modèles, c’est en fait un cas particulier de bagging (bootstrap aggregating) appliqué aux arbres de décision de type CART. Il y a plusieurs autres articles que vous pouvez consulter pour en savoir plus sur les arbres de décision, ou pour réaliser un Random Forest avec R ou pour réaliser un Random Forest avec Python (R et Python comme ça pas de jaloux).

Le principe des méthodes de Bagging, et donc en particulier des forêts aléatoires c’est de faire la moyenne des prévisions de plusieurs modèles indépendants pour réduire la variance et donc l’erreur de prévision. Pour construire ces différents modèles, on sélectionne plusieurs échantillons bootstrap, c’est à dire des tirages avec remises.

L’algorithme Random Forest

En plus du principe de bagging, les forêts aléatoires ajoutent de l’aléa au niveau des variables. Pour chaque arbre on sélectionne un échantillon bootstrat d’individus et à chaque étape, la construction d’un noeud de l’arbre se fait sur un sous-ensemble de variables tirées aléatoirement.

On se retrouve donc avec plusieurs arbres et donc des prédictions différentes pour chaque individu. Comment obtenir l’estimation finale?

  • Dans le cas d’une classification : on choisit la catégorie la plus fréquente
  • Dans le cas d’une régression : on fait la moyenne des valeurs prédites

Quand utiliser un Random Forest ?

C’est un algorithme particulièrement performant pour les problématiques de prédiction. Je l’ai utilisé plusieurs fois dans des challenges Data Science et les résultats étaient satisfaisants. En particulier vous pouvez les utiliser quand vous avez un nombre de variables explicatives important.

En revanche,… ne comptez pas l’utiliser si vous avez besoin d’implémenter des règles de décision ou si vous avez besoin d’expliciter clairement les règles de calcul du modèle. Avec les forêts aléatoires on a clairement un effet boîte noire comme avec les réseaux de neurones. Ce n’est pas un problème en soit,… il faut juste le savoir.

Néanmoins il faut toujours être en mesure d’expliquer un modèle et avec cet algorithme vous pouvez calculer l’importance de chaque variable pour présenter leur contribution au modèle. Vous pouvez utiliser par exemple le critère Mean Decrease Gini qui calcule la diminution d’hétérogénéité de chaque noeud faisant intervenir cette variable.

Pour en savoir plus je vous conseille les excellents cours du Wiki Stat

Le mieux bien sûr c’est encore de tester soit même sur un cas concret. Et ça tombe bien parce qu’il y a plein de challenges Data Science qui n’attendent que vous 🙂

9 réflexions sur “Random Forest, comment ça marche?”

  1. Bonjour,
    je lis vos articles avec beaucoup de plaisir 🙂
    Dans un article « ni boîte noire, ni usine à gaz », vous déconseillez ce type de modèles, en raison de cet aspect « la machine prévoit ça… mais on sait pas pourquoi ».
    Mes premières expériences montrent que j’ai vraiment de bien meilleurs résultats avec random forest qu’avec un arbre de décision, bien élagué/optimisé.
    Il existe des modèles de prédiction aussi efficaces que random forest, mais aussi « simple » à expliquer qu’un arbre de décision ?
    En tout cas, bravo pour votre blog. Je débute juste, et c’est un vrai plaisir, même si les articles sont un peu courts 😉
    Cordialement

    1. Bonjour Toinou,

      C’est vrai qu’avec les modèles d’agrégation comme Random Forest on a un effet boîte noire à priori puisque le modèle ne fournit par directement les règles de calcul. Néanmoins il ne faut surtout pas se priver de les utiliser puisqu’ils sont clairement plus efficaces que les arbres de décision simples.

      Certes on ne peut pas connaitre avec précision tous les paramètres de calcul de ces modèles mais on peut contrer l’effet boîte noire en identifiant les variables qui y contribuent le plus.

      En fait l’effet boîte noire pour moi c’est surtout un défaut de certains Data Scientists. Les modèles sont des outils, c’est à nous de les utiliser à bon escient

      En tout cas merci pour votre commentaire 🙂

  2. Ping : Comment traiter les valeurs manquantes ? – Lovely Analytics

  3. Ping : Classification bayésienne naïve comment ça marche? – Lovely Analytics

  4. Ping : Interprétez vos modèles avec LIME – Lovely Analytics

  5. Ping : L’utilisation des Chatbots sur les réseaux sociaux – Les infos du numérique

  6. Bonjour,

    Merci pour ces information,

    je voudrais savoir comment calculer l’importance de chaque variable à partir du RF. Aussi, j’aimerais savoir à partir du quel seuil je peut considérer que ces variables sont les plus importants pour l’utiliser après.

    Merci

    1. Bonjour,

      Il existe plusieurs manières de calculer les feature importance. La plus classique est la version calculée par sklearn en Python. Pour chaque variable on évalue sa contribution moyenne dans les arbres.

      Pour l’utilisation des variables, personnellement je conserve l’ensemble des variables dans un Random Forest. Il n’existe pas de seuil qui pourrait s’appliquer à tous les cas. Et je préfère faire un travail important de data prep et de Feature Engineering pour n’intégrer dans mon modèle que des variables qui ont un sens métier.

      Voilà, j’espère que cela pourra vous aider 🙂

  7. Ping : Comment mesurer la performance d’un modèle ? – Lovely Analytics

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *