Contenu du cours
Apprentissage Ensembliste
Apprentissage Ensembliste
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
- 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 ;
- 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 ;
- 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 ;
- 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
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))
Exemple d'utilisation de XGBoost
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}')
Merci pour vos commentaires !