Découvrez XGBoost, la bibliothèque leader en matière de gradient boosting pour les données tabulaires. Découvrez son efficacité, son apprentissage ensemble et son intégration avec Ultralytics .
XGBoost, ou Extreme Gradient Boosting, est une bibliothèque logicielle distribuée hautement optimisée, conçue pour mettre en œuvre des algorithmes d'apprentissage automatique dans le cadre du Gradient Boosting. Reconnu pour son efficacité, sa flexibilité et sa portabilité exceptionnelles, XGBoost est devenu le choix privilégié des scientifiques des données travaillant avec des données structurées ou tabulaires. Il fonctionne en combinant les prédictions de plusieurs « faibles » apprenants faibles — généralement des arbres de décisionpeu profonds — pour créer un apprenant « fort » unique. Cette technique, connue sous le nom d' apprentissage par ensemble, permet au modèle de corriger les erreurs commises par les arbres précédents dans la séquence, ce qui donne des résultats de pointe pour les tâches de classification, de régression et de classement .
La puissance de XGBoost réside dans l'optimisation de son système et dans les améliorations apportées à ses algorithmes. Contrairement aux techniques de bagging telles que Random Forest, qui construisent des arbres indépendamment, XGBoost construit des arbres de manière séquentielle. Chaque nouvel arbre tente de minimiser les erreurs (résidus) des précédents. Pour éviter que le modèle ne devienne trop complexe et ne mémorise le bruit dans les données d'entraînement, XGBoost intègre à la fois des termes de régularisation L1 (Lasso) et L2 (Ridge) dans sa fonction objective. Cette protection intégrée contre le surajustement est un facteur clé de différenciation qui garantit des performances robustes sur des données inconnues.
De plus, la bibliothèque est conçue pour être rapide. Elle utilise un schéma quantile pondéré pour trouver les points de division optimaux et emploie un traitement parallèle pendant la construction de l'arbre en utilisant tous CPU disponibles. Elle gère également les données clairsemées de manière intelligente ; si une valeur est manquante, l' algorithme apprend la meilleure direction pour envoyer l'échantillon pendant le processus de division, simplifiant ainsi les pipelines d'ingénierie des caractéristiques.
Bien que XGBoost soit une force dominante, il est utile de comprendre en quoi il diffère des autres bibliothèques de boosting présentes dans le paysage du machine learning (ML):
XGBoost est largement utilisé dans tous les secteurs pour résoudre des problèmes commerciaux critiques.
Alors que XGBoost traite les données structurées, les systèmes d'IA modernes nécessitent souvent une approche multimodale. Par exemple, un système de contrôle qualité dans le secteur manufacturier peut utiliser la détection d'objets optimisée par YOLO26 pour identifier les défauts dans les images. Les métadonnées issues de ces détections (par exemple, le type, la taille et l' emplacement du défaut) peuvent ensuite être intégrées à un modèle XGBoost, parallèlement aux relevés des capteurs (température, pression), afin de prédire les pannes des machines. Les développeurs peuvent gérer ces workflows complexes, y compris l'annotation des ensembles de données et le déploiement des modèles, à l'aide de Ultralytics .
L'exemple suivant montre comment entraîner un classificateur à l'aide de Python XGBoost. Cet extrait de code suppose que les données ont déjà été prétraitées.
import xgboost as xgb
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
# Load dataset and split into train/test sets
data = load_wine()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)
# Initialize and train the XGBoost classifier
model = xgb.XGBClassifier(n_estimators=50, max_depth=4, learning_rate=0.1)
model.fit(X_train, y_train)
# Evaluate the model
print(f"Accuracy: {model.score(X_test, y_test):.4f}")
Pour plus de détails sur les paramètres et la configuration avancée, consultez la documentation officielle de XGBoost. Il est recommandé de procéder à un réglage approprié des hyperparamètres afin d' obtenir les meilleures performances possibles de votre modèle.