Accueil / Factory / Algos ML / Bagging — factory / algos ML / apprentissage supervisé

BAG GING.

Bagging vient de bootstrap aggregating : on entraîne le même modèle sur de nombreux tirages avec remise des données, puis on fait voter ou on moyenne. Proposé par Leo Breiman en 1996, il stabilise les modèles nerveux comme les arbres de décision. La Random Forest en est le prolongement le plus connu.

Ensemble / baggingRégressionClassificationDonnées tabulairesNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceNettement meilleur qu'un arbre seul, un peu sous la Random Forest
InterprétabilitéDes centaines de modèles : plus de règle lisible
VitesseModèles indépendants, entraînement parallélisable
Facilité de réglageNombre de modèles et modèle de base, peu d'autres réglages
Tolérance aux données brutesHérite de la tolérance du modèle de base, forte avec des arbres
EN 30 SECONDES

Demander une estimation à 200 experts qui ont chacun étudié un échantillon différent des dossiers, puis retenir la moyenne de leurs avis.

1. On tire des échantillons avec remise

Chaque tirage a la même taille que les données d'origine. Certaines lignes apparaissent plusieurs fois, environ un tiers n'apparaît pas.

2. On entraîne un modèle par échantillon

Le plus souvent un arbre de décision profond, précis mais instable. Chaque arbre est un peu différent puisqu'il a vu des données différentes.

3. On agrège

Moyenne des prédictions en régression, vote majoritaire en classification. Les erreurs propres à chaque arbre se compensent en partie.

LE CAS MÉTIER

prévision de chiffre d'affaires · réseau de magasins / franchise
EN ENTRÉE

Une ligne par magasin

Surface, budget publicitaire, nombre de concurrents, zone et chiffre d'affaires annuel. L'objectif : prévoir le CA de chaque magasin pour répartir les objectifs et les budgets.

EN SORTIE

Une prévision plus stable qu'un arbre seul

Sur le jeu d'exemple, l'erreur moyenne passe de 94 k€ pour un arbre seul à 78 k€ avec 200 arbres en bagging. La prévision ne dépend plus des quelques magasins tombés d'un côté ou de l'autre d'un seuil.

CE QU'ON MESURE

Erreur moyenne et erreur out-of-bag

L'erreur moyenne en k€ se lit directement. Les magasins laissés de côté par chaque tirage (out-of-bag) fournissent une estimation gratuite de l'erreur, sans jeu de test : ici, un R² out-of-bag proche de 0,9.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Modèle de base précis mais instable : arbre profond, réseau de neurones
  • Besoin d'une estimation de l'erreur sans sacrifier un jeu de test
  • Petits jeux de données où un seul modèle varie beaucoup d'un tirage à l'autre
  • Entraînement à paralléliser sur plusieurs cœurs

NON

  • Modèle de base déjà stable (régression linéaire, k-NN à grand k) : le bagging n'apporte presque rien
  • Arbres comme modèle de base : autant passer à la Random Forest, qui fait mieux pour le même prix
  • Biais important du modèle de base : le bagging réduit la variance, pas le biais, préférer le boosting
  • Relation simple et linéaire : sur ce jeu, une régression linéaire reste plus précise
LES 3 RÉGLAGES QUI COMPTENT

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

nbagg / n_estimators

Nombre de modèles. L'erreur baisse puis se stabilise ; au-delà de 100 à 200, le gain est faible.

Modèle de base : estimator

Des arbres profonds par défaut. Le bagging aide surtout les modèles instables : un arbre non élagué en profite beaucoup, une régression linéaire presque pas.

ns / max_samples

Taille de chaque tirage. Égale à la base par défaut ; la réduire accélère l'entraînement et rend les modèles plus différents entre eux.

LE CODE MINIMAL

jeu d'exemple : magasins.csv ↓
# Prévision du CA magasin : bagging d'arbres en R
library(rpart)
library(ipred)

magasins <- read.csv("magasins.csv")
magasins$zone <- factor(magasins$zone)

set.seed(42)
idx <- sample(nrow(magasins), 300)
train <- magasins[idx, ]
test <- magasins[-idx, ]

# Un seul arbre profond : précis sur l'entraînement, instable sur le reste
arbre <- rpart(ca_k ~ surface_m2 + budget_pub_k + nb_concurrents + zone, data = train,
               control = rpart.control(cp = 0, minsplit = 2))
cat("Arbre seul, erreur moyenne (k€) :", round(mean(abs(predict(arbre, test) - test$ca_k)), 1), "\n")

# 200 arbres, chacun sur un tirage avec remise des magasins, puis moyenne
modele <- bagging(ca_k ~ surface_m2 + budget_pub_k + nb_concurrents + zone, data = train,
                  nbagg = 200, coob = TRUE)
cat("Bagging, erreur moyenne (k€) :", round(mean(abs(predict(modele, test) - test$ca_k)), 1), "\n")
cat("Erreur out-of-bag (RMSE, k€) :", round(modele$err, 1), "\n")

QUESTIONS FRÉQUENTES

Quelle différence entre bagging et boosting ?

Le bagging entraîne des modèles indépendants sur des tirages différents et fait la moyenne : il réduit la variance. Le boosting entraîne les modèles en série, chacun concentré sur les erreurs du précédent : il réduit le biais. Le bagging est plus robuste, le boosting souvent plus précis.

Quelle différence entre bagging et Random Forest ?

La Random Forest est un bagging d'arbres avec un hasard supplémentaire : à chaque découpage, l'arbre ne choisit que parmi quelques variables tirées au sort. Les arbres sont moins corrélés entre eux, et la moyenne est en général meilleure.

Qu'est-ce que l'erreur out-of-bag ?

Chaque tirage avec remise laisse de côté environ un tiers des lignes. On prédit chaque ligne avec les seuls modèles qui ne l'ont pas vue, et on compare au réel. On obtient une estimation de l'erreur proche de celle d'une validation croisée, sans calcul supplémentaire.

LES ALGOS VOISINS

à comparer avant de choisir
le bagging amélioré

Random Forest

Ajoute un tirage au hasard des variables à chaque découpage : des arbres plus différents, un vote plus efficace.

Voir la fiche →
la brique de base

Arbre de décision (CART)

Lisible mais instable. Le bagging corrige ce défaut.

Voir la fiche →
l'autre famille d'ensembles

AdaBoost

Les modèles sont entraînés en série, chacun sur les erreurs du précédent. Réduit le biais plutôt que la variance.

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 →