Accueil / Factory / Algos ML / Extra Trees — factory / algos ML / apprentissage supervisé

EXTRA TREES.

Extra Trees, pour Extremely Randomized Trees, pousse l'idée de la Random Forest plus loin : les seuils de découpage sont tirés au hasard au lieu d'être optimisés. Les arbres sont plus rapides à construire et plus différents entre eux. Sur des données bruitées, le résultat est souvent aussi bon qu'une Random Forest, parfois meilleur.

EnsembleRégressionClassificationDonnées tabulairesNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceAu niveau de la Random Forest, parfois un peu au-dessus ou en dessous
InterprétabilitéImportance des variables, pas de règle lisible
VitesseAucun seuil à optimiser : plus rapide qu'une Random Forest
Facilité de réglageFonctionne bien avec les réglages par défaut
Tolérance aux données brutesPas de mise à l'échelle, robuste aux valeurs extrêmes
EN 30 SECONDES

Une forêt où chaque arbre coupe au jugé plutôt qu'au millimètre. Pris un par un, ils sont grossiers ; ensemble, leurs approximations se compensent.

1. On tire des variables au hasard

À chaque nœud, comme en Random Forest, on ne considère qu'une partie des variables (ou toutes, selon le réglage).

2. On tire aussi les seuils au hasard

Pour chaque variable candidate, un seul seuil est tiré au hasard entre son minimum et son maximum dans le nœud. On garde le meilleur de ces découpages aléatoires.

3. On moyenne des centaines d'arbres

Par défaut, chaque arbre voit toutes les lignes, sans tirage avec remise. La moyenne des arbres donne la prédiction, comme pour une forêt.

LE CAS MÉTIER

tarification · assurance auto / flotte / habitation
EN ENTRÉE

Un portefeuille de contrats

Âge du conducteur, puissance, bonus-malus, zone, nombre de sinistres et durée d'observation du contrat. La cible est la fréquence : sinistres par année assurée, chaque contrat pesant selon sa durée.

EN SORTIE

Une fréquence attendue par contrat

Sur le jeu d'exemple, l'âge du conducteur est de loin la variable la plus importante. Les 20 % de contrats jugés les plus risqués ont une fréquence observée d'environ 0,28 sinistre par an, contre 0,06 pour les 20 % jugés les moins risqués.

CE QU'ON MESURE

Fréquence observée par tranche de risque prédit

L'événement est rare : l'erreur ligne à ligne n'a pas de sens. On classe les contrats par risque prédit, on les regroupe en quintiles et on vérifie que la fréquence observée monte bien d'une tranche à l'autre.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Données bruitées où une forêt classique surapprend un peu
  • Beaucoup de lignes ou de variables, quand le temps d'entraînement compte
  • Alternative à tester systématiquement à côté d'une Random Forest
  • Classification comme régression, sur données tabulaires

NON

  • Besoin de règles lisibles : un arbre seul ou une régression
  • Recherche des derniers points de performance : un boosting bien réglé fait souvent mieux
  • Tarification réglementée à documenter coefficient par coefficient : un GLM de Poisson reste la référence
  • Petites données très propres : une Random Forest ou un modèle linéaire suffisent
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (ranger) et Python (scikit-learn).

num.trees / n_estimators

Nombre d'arbres. Comme en forêt, plus il y en a, plus c'est stable. Le hasard étant plus fort, il en faut un peu plus : 300 à 1 000.

mtry / max_features

Nombre de variables candidates à chaque nœud. En régression, scikit-learn les prend toutes par défaut : seul le seuil est aléatoire.

min.bucket / min_samples_leaf

Taille minimale des feuilles. Pour un événement rare comme un sinistre, des feuilles larges (100 contrats ou plus) évitent de suivre le bruit.

replace / bootstrap

Par défaut, Extra Trees n'utilise pas de tirage avec remise. ranger en fait un par défaut, même en mode extratrees ; replace = FALSE et sample.fraction = 1 retrouvent la méthode d'origine.

LE CODE MINIMAL

jeu d'exemple : sinistres.csv ↓
# Fréquence de sinistres auto : Extra Trees en R
library(ranger)

contrats <- read.csv("sinistres.csv")
contrats$zone <- factor(contrats$zone)
contrats$frequence <- contrats$nb_sinistres / contrats$exposition   # sinistres par année assurée

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

# splitrule = "extratrees" : seuils tirés au hasard ; case.weights fait tirer
# les contrats en proportion de leur durée d'observation
modele <- ranger(frequence ~ age_conducteur + puissance_cv + bonus_malus + zone, data = train,
                 num.trees = 500, splitrule = "extratrees", num.random.splits = 1, mtry = 4,
                 min.bucket = 100, case.weights = train$exposition, importance = "impurity", seed = 42)
print(sort(importance(modele), decreasing = TRUE))

# Fréquence observée par quintile de risque prédit (1 = contrats jugés les moins risqués)
pred <- predict(modele, data = test)$predictions
quintile <- cut(rank(pred, ties.method = "first"), 5, labels = 1:5)
print(round(tapply(test$nb_sinistres, quintile, sum) / tapply(test$exposition, quintile, sum), 3))

QUESTIONS FRÉQUENTES

Quelle différence entre Extra Trees et Random Forest ?

La Random Forest cherche le meilleur seuil pour chaque variable candidate et entraîne chaque arbre sur un tirage avec remise. Extra Trees tire les seuils au hasard et utilise par défaut toutes les lignes. Les arbres sont plus rapides à construire et plus différents entre eux.

Extra Trees est-il plus précis que Random Forest ?

Parfois, souvent pas de beaucoup. Sur des données bruitées, le hasard supplémentaire réduit le surapprentissage ; sur d'autres, la forêt classique garde un léger avantage. Le coût de calcul étant faible, on teste les deux.

Que veut dire Extra Trees ?

Extremely Randomized Trees, arbres extrêmement aléatoires. La méthode a été publiée par Pierre Geurts, Damien Ernst et Louis Wehenkel en 2006.

LES ALGOS VOISINS

à comparer avant de choisir
la forêt classique

Random Forest

Seuils optimisés et tirage avec remise. Un peu plus lente, performance très proche.

Voir la fiche →
la référence actuarielle

Régression de Poisson

Modélise directement un nombre de sinistres avec l'exposition. Moins souple, entièrement lisible.

Voir la fiche →
souvent plus précis

Gradient Boosting

Arbres construits en série pour corriger les erreurs. Plus fort, plus long à régler.

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 →