Accéder au contenu principal

Qu’est-ce que le boosting ?

Le boosting améliore les performances en apprentissage automatique en corrigeant séquentiellement les erreurs et en combinant des apprenants faibles pour obtenir de meilleurs prédicteurs.
Actualisé 19 sept. 2026  · 11 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Les avancées récentes en apprentissage automatique ont ouvert de nouvelles voies pour résoudre des problèmes complexes. Le boosting fait partie des techniques les plus prometteuses. Il transforme notre approche de la modélisation des données en s’appuyant sur plusieurs algorithmes pour gagner en performance. À mesure que le concept évolue, de nouvelles variantes comme le gradient boosting et XGBoost repoussent les limites en matière de vitesse et de précision.

Pas d’inquiétude si la modélisation prédictive vous semble vaste. Explorez nos parcours Associate Data Scientist in Python ou Data Scientist in Python, ainsi que notre tutoriel Explore Ensemble Learning Techniques pour continuer à apprendre. 

Le boosting en apprentissage automatique

Le boosting est une méthode d’ensemble particulièrement puissante en apprentissage automatique, conçue pour améliorer la précision des modèles prédictifs en combinant plusieurs apprenants faibles — des modèles qui ne font qu’un peu mieux que le hasard — en un seul apprenant fort.

L’essence du boosting réside dans un processus itératif où chaque apprenant faible est entraîné pour corriger les erreurs de son prédécesseur, améliorant progressivement les performances globales. En se concentrant sur les erreurs des modèles précédents, le boosting transforme une collection d’apprenants faibles en un modèle bien plus précis.

Comment fonctionne le boosting

Le boosting transforme des apprenants faibles en un apprenant unique et robuste grâce à un processus systématique qui vise à réduire les erreurs lors d’entraînements successifs. Les étapes clés sont les suivantes :

  1. Définir des poids initiaux : attribuez des poids initiaux à tous les points de données afin d’indiquer leur importance dans l’apprentissage.
  2. Entraîner séquentiellement : entraînez un premier apprenant faible sur les données. Après avoir évalué ses performances, augmentez les poids des instances mal classées. Le prochain apprenant se concentrera ainsi davantage sur les cas difficiles.
  3. Répéter le processus : réitérez les ajustements de poids et l’entraînement des apprenants suivants. Chaque nouveau modèle cible les faiblesses de l’ensemble actuel.
  4. Combiner les résultats : agrégez les prédictions de tous les apprenants faibles pour produire la sortie finale. L’agrégation est généralement pondérée, les apprenants les plus précis ayant davantage d’influence.

Cette méthode réduit efficacement les erreurs en mettant l’accent sur les cas difficiles du jeu d’entraînement, ce qui se traduit par une forte performance prédictive.

Types d’algorithmes de boosting

Passons en revue quelques-uns des algorithmes de boosting les plus connus. 

AdaBoost (Adaptive Boosting)

AdaBoost est l’un des premiers algorithmes de boosting. Il réajuste les poids des exemples d’entraînement à chaque ajout d’apprenant, en mettant l’accent sur les instances mal classées. AdaBoost est particulièrement efficace pour les problèmes de classification binaire. Lisez notre tutoriel AdaBoost Classifier in Python pour en savoir plus.

Gradient boosting

Le gradient boosting construit des modèles de manière séquentielle en corrigeant les erreurs au fil de l’eau. Il utilise un algorithme de descente de gradient pour minimiser la perte lors de l’ajout de nouveaux modèles. Cette méthode est flexible et s’applique aussi bien à la régression qu’à la classification. Notre tutoriel A Guide to The Gradient Boosting Algorithm décrit ce processus en détail. 

XGBoost (Extreme Gradient Boosting)

XGBoost est une bibliothèque de gradient boosting distribuée et optimisée, méthode de référence pour de nombreux lauréats de compétitions sur Kaggle. Elle est conçue pour être très efficace, flexible et portable. Elle implémente des algorithmes d’apprentissage automatique dans le cadre du gradient boosting, offrant une solution à la fois scalable et précise à de nombreux problèmes concrets. Pour aller plus loin, consultez notre tutoriel Using XGBoost in Python et suivez notre cours dédié : Extreme Gradient Boosting with XGBoost.

Méthodes d’ensemble

Le boosting appartient à la grande famille des méthodes d’ensemble. Ces méthodes consistent à combiner plusieurs modèles pour produire des prédictions plus justes que celles d’un modèle unique. Elles tirent parti de la diversité des modèles — chacun ayant ses forces et ses limites — afin d’aboutir à une prise de décision collective plus performante.

Différents types de méthodes d’ensemble

Le boosting est une technique d’ensemble majeure, mais il n’est pas la seule à renforcer la puissance prédictive des modèles. Voici d’autres approches clés.

  • Bagging (Bootstrap aggregating) : méthode qui entraîne plusieurs modèles sur des sous-échantillons aléatoires des données d’entraînement et agrège leurs prédictions. Elle réduit la variance et limite le surapprentissage.
  • Stacking (stacked generalization) : technique qui combine plusieurs modèles en entraînant un méta-modèle chargé d’apprendre la meilleure façon d’agréger les prédictions des modèles de base. Elle peut capter des schémas complexes qu’un modèle seul manquerait.
  • Blending : proche du stacking, mais utilise un jeu de validation mis de côté pour entraîner le méta-modèle au lieu d’une validation croisée. Plus simple et plus rapide que le stacking, mais souvent moins robuste.
  • Vote : combine les prédictions de plusieurs modèles par vote majoritaire (vote dur) ou par moyenne pondérée des probabilités prédites (vote mou). Simple à mettre en œuvre et efficace avec des modèles de base hétérogènes.

Boosting vs bagging

Le boosting est souvent comparé au bagging. S’ils partagent des points communs, des différences majeures subsistent. Voici un tableau comparatif :

Caractéristique Boosting Bagging
Focalisation conceptuelle Améliore la précision de façon séquentielle en ciblant les exemples précédemment mal classés. Entraîne plusieurs modèles sur des sous-échantillons aléatoires et moyenne leurs prédictions.
Entraînement des modèles L’entraînement séquentiel permet à chaque modèle d’apprendre des erreurs du précédent. L’entraînement en parallèle sur des échantillons variés accroît la diversité.
Réduction de l’erreur Réduit principalement le biais, et la variance dans une moindre mesure. Réduit la variance, notamment pour les modèles complexes sujets au surapprentissage.
Sensibilité aux valeurs aberrantes Plus sensible du fait de l’accent mis sur les données mal classées. Moins sensible, l’échantillonnage aléatoire atténuant leur impact.
Exemples AdaBoost, Gradient Boosting, XGBoost. Random Forests, Bootstrap aggregating.

Si vous souhaitez en savoir plus sur le bagging, lisez notre tutoriel What is Bagging in Machine Learning?, qui utilise sklearn. 

Devenez un scientifique ML

Améliorez vos connaissances en Python pour devenir un scientifique spécialisé dans l'apprentissage automatique.
Commencez À Apprendre Gratuitement

Exemple d’implémentation du boosting en Python

L’une des meilleures façons de comprendre le boosting est de l’observer en pratique. Pour cela, nous allons utiliser le jeu de données Kaggle Almond Types Classification, qui regroupe trois types d’amandes : MAMRA, SANORA et REGULAR, ainsi que leurs caractéristiques physiques (surface, périmètre, circularité, etc.). 

Les caractéristiques de chaque échantillon d’amande ont été extraites grâce à des techniques avancées de traitement d’images. Les valeurs nulles du jeu de données correspondent aux cas où l’orientation de l’amande — tenue droite, posée sur le côté ou sur le dos — a perturbé l’extraction fiable des attributs. 

Utilisons maintenant ce jeu de données pour une tâche de classification. Nous allons recourir à l’algorithme AdaBoost qui, comme indiqué plus haut, améliore les performances en combinant des apprenants faibles en un modèle fort.

1. Importation des bibliothèques

Nous commençons par importer les bibliothèques nécessaires et charger les données d’amandes. Puis, nous séparons variables explicatives et variable cible.

import pandas as pd
almonds = pd.read_csv('Almond.csv', index_col=0)
X = almonds.drop('Type', axis=1)  
y = almonds['Type']

2. Gestion des données manquantes

Nous nettoyons ensuite le jeu de données en comblant les valeurs manquantes avec un imputeur KNN, afin d’obtenir un ensemble complet pour l’entraînement.

from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
X_imputed = imputer.fit_transform(X)

3. Séparation des jeux d’entraînement et de test

Nous scindons les données en ensembles d’entraînement et de test pour évaluer la capacité du modèle à généraliser sur de nouvelles observations.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_imputed, y, test_size=0.2, random_state=42)

4. Entraînement d’un arbre de décision

Nous entraînons un arbre de décision simple pour obtenir une précision de référence avant d’améliorer ses performances avec du boosting.

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
tree = DecisionTreeClassifier(max_depth=1, random_state=42)
tree.fit(X_train, y_train)
tree_accuracy = accuracy_score(y_test, tree.predict(X_test))

5. Amélioration des performances avec AdaBoost

Nous utilisons ensuite AdaBoost pour améliorer les performances de l’arbre en se concentrant sur ses erreurs et en gagnant en précision.

from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(base_estimator=tree, n_estimators=100, learning_rate=1.0, random_state=42)
ada.fit(X_train, y_train)
ada_accuracy = accuracy_score(y_test, ada.predict(X_test))

# Print the accuracies
print(f'Accuracy of the weak learner (Decision Tree): {tree_accuracy * 100:.2f}%')
print(f'Accuracy of AdaBoost model: {ada_accuracy * 100:.2f}%')

6. Résultat final

Enfin, nous comparons les résultats et constatons qu’AdaBoost améliore significativement la précision.

Accuracy of the weak learner (Decision Tree): 43.14%
Accuracy of AdaBoost model: 61.50%

Que faut-il en retenir ? Ces résultats illustrent la puissance des méthodes d’ensemble via AdaBoost. Ici, l’apprenant faible est un arbre de décision de profondeur maximale égale à 1, avec une précision d’environ 43 %. Étant donné qu’il n’y a que trois types d’amandes, 43 % dépasse à peine le niveau du hasard. En revanche, utilisé comme estimateur de base dans un modèle AdaBoost avec 100 itérations, il atteint 62 % de précision.

Petit bémol toutefois : même si AdaBoost affiche une meilleure précision sur notre jeu de données Almonds, ce n’est pas toujours le meilleur choix. Le risque de surapprentissage existe, surtout avec de petits jeux de données, où le modèle peut devenir inutilement complexe. Dans certains cas, des techniques de classification plus simples feront tout aussi bien, voire mieux. Nous avons choisi AdaBoost ici pour illustrer le concept ; il convient toujours d’évaluer si ce niveau de complexité est réellement pertinent.

Conclusion

Le boosting représente une avancée majeure en apprentissage automatique et démontre la force des méthodes d’ensemble pour améliorer la précision des prédictions. Comme nous l’avons vu, des algorithmes tels qu’AdaBoost, le gradient boosting et XGBoost reposent sur un principe fondamental : combiner plusieurs modèles faibles pour créer un prédicteur unique plus performant. 

N’oubliez pas toutefois que le boosting n’est qu’un outil parmi d’autres. Son efficacité dépend du problème traité. Comme pour toute technique d’apprentissage automatique, savoir quand et comment l’appliquer est essentiel pour en tirer tout le potentiel.

Pour approfondir vos connaissances sur le boosting et d’autres concepts de machine learning, découvrez le parcours complet de DataCamp Machine Learning for Everyone. Pour vous spécialiser davantage, le parcours Machine Learning Scientist with Python propose une formation poussée aux techniques avancées et à leurs applications concrètes.

Renforcer les compétences en matière d'apprentissage automatique

Améliorez vos compétences en matière d'apprentissage automatique au niveau de la production.

Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chugani a débuté sa carrière à Tokyo comme plus jeune responsable du desk ventes hedge funds de JPMorgan, puis a signé un record de ventes individuel chez Lehman Brothers, avant de développer une activité de distribution d’électronique présente dans 30 pays, dépassant les 100 millions SG$ de chiffre d’affaires, puis de se tourner vers la data. Diplômé en économie de Duke et ancien élève de la NYC Data Science Academy, il a fait partie des trois lauréats de bourse sur plus de 100 candidatures pour le cours Building AI Applications de Hugo Bowne-Anderson sur Maven. Aujourd’hui, il écrit pour DataCamp, KDnuggets, Machine Learning Mastery et Statology, sur des sujets allant des statistiques à l’IA agentique, et accompagne des professionnels de la data à la NYC Data Science Academy, avec plus de 1 000 séances individuelles à son actif.

 

Foire aux questions

Qu’est-ce que le boosting en apprentissage automatique ?

Le boosting est une technique d’ensemble utilisée pour améliorer la précision des modèles prédictifs. Elle combine plusieurs apprenants faibles — des modèles qui font à peine mieux que le hasard — en un apprenant fort unique, ce qui rehausse sensiblement les performances globales.

En quoi le boosting est-il différent du bagging ?

Le boosting et le bagging sont deux techniques d’ensemble qui combinent plusieurs modèles pour améliorer les prédictions, mais elles fonctionnent différemment. Le boosting entraîne les modèles de façon séquentielle, chaque nouveau modèle se concentrant sur les erreurs des précédents pour réduire le biais et gagner en précision. À l’inverse, le bagging entraîne des modèles en parallèle sur différents sous-échantillons des données et moyenne leurs sorties pour réduire la variance et renforcer la stabilité. Le boosting est plus sensible au bruit et aux valeurs aberrantes, tandis que le bagging y est plus robuste grâce à son effet de moyennage.

Peut-on utiliser le boosting pour des problèmes de classification et de régression ?

Oui, les techniques de boosting peuvent être adaptées à la fois à la classification et à la régression. Si AdaBoost est plus courant en classification, des variantes comme le gradient boosting sont très efficaces en régression.

Comment choisir le nombre d’itérations de boosting ?

Le nombre d’itérations — c’est-à-dire d’apprenants faibles — dépend du jeu de données et de la complexité du problème. On le détermine généralement par validation croisée ou méthodes similaires afin d’équilibrer sous-apprentissage et surapprentissage.

En quoi AdaBoost diffère-t-il d’autres techniques de boosting comme le gradient boosting ?

AdaBoost augmente les poids des instances mal classées afin que les modèles suivants se concentrent sur ces cas difficiles. Le gradient boosting, lui, ajuste de nouveaux apprenants sur les résidus (erreurs) des modèles précédents.

Quels sont les principaux avantages d’AdaBoost ?

Les principaux atouts d’AdaBoost sont sa simplicité, son efficacité et l’absence de prérequis sur l’apprenant faible. Très flexible, il peut s’associer à tout algorithme d’apprentissage et réussit souvent là où d’autres méthodes peinent en classification.

Quelles sont des alternatives notables à AdaBoost pour améliorer les performances des modèles d’apprentissage automatique ?

Parmi les alternatives notables à AdaBoost, on trouve le gradient boosting, XGBoost, CatBoost, LightGBM et HistGradientBoost.

Quelles sont les méthodes d’ensemble autres que le boosting ?

En dehors du boosting, les formes courantes de méthodes d’ensemble incluent le bagging et le stacking, qui emploient d’autres stratégies de combinaison de modèles pour maximiser la puissance prédictive.

Sujets
Apprentissage automatique
Python

Apprenez le machine learning avec DataCamp

Cours

Comprendre le Machine Learning

2 h
308.2K
Une introduction au machine learning sans codage.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow