CommencezCommencez gratuitement

Apprenants de base linéaires

Maintenant que vous avez utilisé des arbres comme modèles de base dans XGBoost, essayons l'autre type de modèle de base utilisable avec XGBoost : un apprenant linéaire. Ce modèle, bien que moins courant dans XGBoost, permet de créer une régression linéaire régularisée en tirant parti de la puissante API d'apprentissage d'XGBoost. Toutefois, comme il est peu utilisé, vous devez recourir aux fonctions propres à XGBoost, non compatibles avec scikit-learn, pour bâtir le modèle, par exemple xgb.train().

Pour cela, vous devez créer le dictionnaire de paramètres qui décrit le type de rehausseur (booster) que vous voulez utiliser (de façon similaire à la création du dictionnaire au chapitre 1 lorsque vous avez utilisé xgb.cv()). La paire clé-valeur qui définit le type de rehausseur (modèle de base) dont vous avez besoin est "booster":"gblinear".

Une fois le modèle créé, vous pouvez utiliser les méthodes .train() et .predict() du modèle comme vous l'avez fait auparavant.

Ici, les données ont déjà été divisées en ensembles d'entraînement et de test, vous pouvez donc passer directement à la création des objets DMatrix requis par l'API d'apprentissage d'XGBoost.

Cette activité fait partie du cours

Amorçage de gradient avancé avec XGBoost

Voir le cours

Instructions de l’exercice

  • Créez deux objets DMatrix : DM_train pour l'ensemble d'entraînement (X_train et y_train), et DM_test (X_test et y_test) pour l'ensemble de test.
  • Créez un dictionnaire de paramètres qui définit le type de "booster" que vous utiliserez ("gblinear") ainsi que l'"objective" que vous minimiserez ("reg:squarederror").
  • Entraînez le modèle à l'aide de xgb.train(). Vous devez fournir des arguments pour les paramètres suivants : params, dtrain et num_boost_round. Utilisez 5 itérations de rehaussement.
  • Prédisez les étiquettes sur l'ensemble de test avec xg_reg.predict(), en lui passant DM_test. Assignez le résultat à preds.
  • Cliquez sur "Soumettre la réponse" pour voir la RMSE !

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test =  ____

# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}

# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)

# Predict the labels of the test set: preds
preds = ____

# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
Modifier et exécuter le code