Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre XGBoost | Modèles de Boosting Couramment Utilisés
Apprentissage Ensembliste
course content

Contenu du cours

Apprentissage Ensembliste

Apprentissage Ensembliste

1. Principes de Base de la Construction de Modèles d'Ensemble
2. Modèles de Bagging Couramment Utilisés
3. Modèles de Boosting Couramment Utilisés
4. Modèles de Stacking Couramment Utilisés

book
XGBoost

XGBoost (Extreme Gradient Boosting) est un algorithme d'apprentissage automatique populaire et puissant pour les tâches de classification et de régression. C'est une technique d'apprentissage ensembliste qui appartient à la famille des algorithmes de gradient boosting. XGBoost est connu pour son efficacité, sa scalabilité et son efficacité à traiter divers problèmes d'apprentissage automatique.

Caractéristiques clés de XGBoost

  1. Gradient Boosting : XGBoost est une variante du gradient boosting avec des arbres de décision peu profonds comme modèles de base. Ces arbres sont créés de manière gourmande en partitionnant récursivement les données en fonction de la caractéristique qui conduit à la meilleure division ;
  2. Régularisation : XGBoost intègre des techniques de régularisation pour éviter le surapprentissage. Il inclut des termes dans la fonction objectif qui pénalisent les modèles complexes, ce qui aide à une meilleure généralisation ;
  3. Fonction Objectif : XGBoost optimise une fonction objectif qui combine la fonction de perte (par exemple, l'erreur quadratique moyenne pour la régression, la perte logarithmique pour la classification) et les termes de régularisation. L'algorithme cherche à trouver le meilleur modèle qui minimise cette fonction objectif ;
  4. Calcul parallèle et distribué : XGBoost est conçu pour être efficace et évolutif. Il utilise des techniques de calcul parallèle et distribué pour accélérer le processus d'entraînement, le rendant adapté aux grands ensembles de données.

L'efficacité de XGBoost réside dans sa capacité à produire des prédictions précises tout en gérant des problèmes comme le surapprentissage et le sous-apprentissage. Il a gagné en popularité dans diverses compétitions d'apprentissage automatique et applications réelles grâce à sa forte performance prédictive et sa polyvalence.

Exemple

Tout d'abord, nous devons admettre que XGBoost n'a pas de réalisation dans la bibliothèque sklearn, nous devons donc installer xgboost manuellement en utilisant la commande suivante dans la console de votre interpréteur :
pip install xgboost.
Une fois l'installation terminée, nous pouvons utiliser XGBoost pour résoudre les tâches.

Qu'est-ce que DMatrix ?

Avant de commencer à travailler avec le modèle ensembliste XGBoost, nous devons nous familiariser avec une structure de données spécifique - DMatrix.
Dans XGBoost, DMatrix est une structure de données optimisée pour l'efficacité et utilisée pour stocker l'ensemble de données pendant l'entraînement et la prédiction. C'est un concept central dans la bibliothèque xgboost et est conçu pour gérer de grands ensembles de données de manière efficace en mémoire et rapide. DMatrix sert de conteneur d'entrée pour les données d'entraînement et de test.

Exemple de DMatrix

1234567891011
import xgboost as xgb import numpy as np # Sample data X_train = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) y_train = np.array([0, 1, 0]) # Create DMatrix objects dtrain = xgb.DMatrix(X_train, label=y_train) print(type(dtrain))
copy

Exemple d'utilisation de XGBoost

12345678910111213141516171819202122232425262728293031323334
import numpy as np import pandas as pd import xgboost as xgb from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import f1_score # Load the Iris dataset data = load_iris() X = data.data y = data.target # Split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Create DMatrix objects for XGBoost dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) # Set hyperparameters params = { 'objective': 'multi:softmax', 'num_class': 3 } # Train the XGBoost classifier model = xgb.train(params, dtrain) # Make predictions y_pred = model.predict(dtest) # Calculate accuracy f1 = f1_score(y_test, y_pred, average='weighted') print(f'F1-score: {f1:.4f}')
copy
Quel modèle est préférable d'utiliser si vous souhaitez éviter le surapprentissage ?

Quel modèle est préférable d'utiliser si vous souhaitez éviter le surapprentissage ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 5
We're sorry to hear that something went wrong. What happened?
some-alt