Accueil / Factory / Algos ML / Random Forest — factory / algos ML / apprentissage supervisé

RANDOM FOREST.

Des centaines d'arbres de décision entraînés chacun sur un bout différent des données, qui votent ensemble. C'est l'algo qu'on sort en premier sur un problème de données tabulaires, parce qu'il marche presque toujours correctement sans réglage.

ClassificationRégressionDonnées tabulairesEnsemble / baggingNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceTrès bonne base, battue d'un cheveu par le boosting
InterprétabilitéImportance des variables oui, règle lisible non
VitesseArbres indépendants, parallélisables (n_jobs=-1)
Facilité de réglageLes valeurs par défaut suffisent souvent
Tolérance aux données brutesPas de normalisation, peu sensible aux valeurs extrêmes
EN 30 SECONDES

Un seul expert se trompe souvent. Un comité de 300 experts qui n'ont pas vu les mêmes dossiers se trompe beaucoup moins.

1. On tire des échantillons au hasard

Chaque arbre reçoit un tirage avec remise des lignes d'entraînement (bootstrap). Environ un tiers des clients n'est pas vu par un arbre donné.

2. Chaque arbre pousse avec des œillères

À chaque découpage, l'arbre ne peut choisir que parmi quelques variables tirées au hasard (paramètre mtry). Les arbres deviennent différents les uns des autres, et c'est ce qui fait la force du groupe.

3. Tout le monde vote

En classification, la classe majoritaire l'emporte et la part de votes donne une probabilité. En régression, on fait la moyenne des prédictions.

À VOUS DE JOUER

démo calculée en direct dans le navigateur
Appels au support / mois
Ancienneté client (mois) →

Cas : 160 clients simulés d'un opérateur télécom. Carré noir = client parti (churn), carré blanc = client resté. Le fond montre ce que prédit la forêt.

–précision sur clients jamais vus
–précision sur l'entraînement

Passez à 1 arbre et profondeur 12 : l'écart entre les deux scores, c'est le surapprentissage.

risque churn élevérisque faible

LE CAS MÉTIER

churn · télécom / énergie / assurance
EN ENTRÉE

Une ligne par client

Ancienneté, nombre d'appels au support, montant mensuel, type de contrat, incidents des 3 derniers mois. Et la colonne à prédire : le client est-il parti ?

EN SORTIE

Un score de 0 à 100 %

Chaque client reçoit une probabilité de départ. On trie la base, et l'équipe fidélisation appelle d'abord les 10 % les plus à risque.

CE QU'ON MESURE

Le lift, pas l'accuracy

Si 22 % des clients partent, un modèle qui dit « personne ne part » a 78 % d'exactitude (accuracy) et ne sert à rien. On regarde combien de vrais partants on trouve dans le top 10 %.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Données en tableau, de quelques milliers à quelques millions de lignes
  • Premier modèle sérieux pour battre la référence
  • Variables mélangées (numériques, catégorielles) et peu préparées (en R, imputer d'abord les valeurs manquantes avec na.roughfix)
  • Besoin de savoir quelles variables comptent

NON

  • Décision à justifier ligne à ligne (crédit, RH) : préférer une régression logistique ou ajouter SHAP
  • Images, texte, son : c'est le terrain du deep learning
  • Prévoir au-delà de ce qui a été vu : une forêt n'extrapole pas une tendance
  • Modèle à embarquer très léger : 500 arbres pèsent lourd
LES 4 RÉGLAGES QUI COMPTENT

Le reste, on le laisse par défaut. Noms donnés pour R (randomForest) et Python (scikit-learn).

ntree / n_estimators

Nombre d'arbres. Plus il y en a, plus c'est stable, jamais moins bon, seulement plus lent. 300 à 500 suffisent presque toujours.

mtry / max_features

Nombre de variables tirées à chaque découpage. Le réglage qui a le plus d'effet. Par défaut, la racine carrée du nombre de variables en classification.

nodesize / min_samples_leaf

Nombre minimum de clients par feuille. L'augmenter lisse le modèle et limite le surapprentissage sur les petites bases.

sampsize / class_weight

Rééquilibrage des classes : en R, sampsize tire autant de partants que de fidèles par arbre ; en Python, class_weight="balanced". Utile quand la classe à détecter est rare.

LE CODE MINIMAL

jeu d'exemple : clients_churn.csv ↓
# Churn clients : Random Forest en R
library(randomForest)

clients <- read.csv("clients_churn.csv")
clients$churn <- as.factor(clients$churn)
clients$contrat <- as.factor(clients$contrat)

set.seed(42)
idx <- sample(nrow(clients), round(0.7 * nrow(clients)))
train <- clients[idx, ]
test <- clients[-idx, ]

modele <- randomForest(churn ~ anciennete + appels_support + montant + contrat + incidents_3m,
                       data = train, ntree = 300, importance = TRUE)

# Score de départ sur les clients jamais vus
proba <- predict(modele, test, type = "prob")[, "1"]

# Lift : part de partants dans le top 10 % vs dans la base
top <- proba >= quantile(proba, 0.9)
cat("Taux de churn top 10 % :", round(mean(test$churn[top] == "1"), 2), "\n")
cat("Taux de churn moyen   :", round(mean(test$churn == "1"), 2), "\n")
print(importance(modele, type = 1))

QUESTIONS FRÉQUENTES

Quelle différence entre Random Forest et arbre de décision ?

Un arbre de décision est un seul modèle, lisible mais instable : quelques lignes de données en plus peuvent changer tout l'arbre. Une Random Forest en combine des centaines, entraînés sur des échantillons différents, ce qui la rend beaucoup plus précise et stable, au prix de la lisibilité.

Random Forest ou XGBoost ?

XGBoost gagne souvent quelques points de performance, mais demande plus de réglages et surapprend plus facilement. Random Forest est le meilleur choix pour un premier modèle solide sans passer des heures à régler les paramètres.

Faut-il normaliser les données pour une Random Forest ?

Non. Les arbres découpent les variables par seuils, l'échelle n'a donc aucun effet. Il faut en revanche encoder les variables catégorielles en Python, ce que R gère directement avec les facteurs.

LES ALGOS VOISINS

à comparer avant de choisir
la brique de base

Arbre de décision (CART)

Un seul arbre : lisible par un humain, mais instable. La forêt corrige ce défaut.

Voir la fiche →
souvent plus précis

XGBoost

Les arbres sont construits l'un après l'autre pour corriger les erreurs du précédent. Plus fort, plus capricieux à régler.

Voir la fiche →
la référence à battre

Régression logistique

Moins précise sur les relations complexes, mais chaque coefficient s'explique à un régulateur.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →