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
Amélioration du Gradient
Gradient Boosting est une technique puissante d'apprentissage ensembliste de boosting pour les tâches de classification et de régression.
Comment fonctionne le Gradient Boosting ?
- Initialisation du Modèle de Base : Le processus commence par l'initialisation d'un modèle de base en tant que premier apprenant faible. Ce modèle initial fait des prédictions, mais elles peuvent ne pas être très précises ;
- Calcul des Résidus : La différence entre les valeurs cibles réelles et les prédictions du modèle actuel est calculée. Ces différences, connues sous le nom de résidus ou erreurs, représentent les "résidus" que le modèle suivant tentera de corriger ;
- Ajustement du Nouveau Modèle : Un nouvel apprenant faible est ajusté pour prédire les résidus de l'étape précédente. Ce nouveau modèle vise à corriger les erreurs commises par le modèle précédent ;
- Combinaison des Prédictions : Les prédictions du nouveau modèle sont ajoutées aux prédictions du modèle précédent. Les prédictions combinées commencent à se rapprocher plus étroitement des valeurs cibles réelles ;
- Processus Itératif : Les étapes 3 et 4 sont répétées pour un nombre spécifié d'itérations (ou jusqu'à ce qu'un critère d'arrêt soit atteint). À chaque itération, un nouveau modèle est ajusté pour prédire les résidus des prédictions combinées des itérations précédentes ;
- Prédiction Finale : Après avoir complété toutes les itérations, la prédiction finale est obtenue en ajoutant ensemble les prédictions des apprenants faibles. Cet ensemble de modèles forme un apprenant fort qui a appris à corriger les erreurs des modèles précédents.
Remarque
Nous pouvons également calculer l'importance des caractéristiques en utilisant l'attribut
.feature_importances_
du modèle entraîné.
Exemple
Remarque
Il est important de noter que les classes
GradientBoostingRegressor
etGradientBoostingClassifier
en Python sont conçues pour utiliser uniquementDecisionTreeRegressor
etDecisionTreeClassifier
comme modèles de base d'un ensemble !
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import f1_score import seaborn as sns # 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 and train the Gradient Boosting classifier clf = GradientBoostingClassifier(n_estimators=100) clf.fit(X_train, y_train) # Make predictions y_pred = clf.predict(X_test) # Calculate accuracy f1 = f1_score(y_test, y_pred, average='weighted') print(f'F1 score: {f1:.4f}')
Tout était clair ?
Merci pour vos commentaires !
Section 3. Chapitre 4