Apprenants de base linéaires
Maintenant que vous avez utilisé des arbres comme modèles de base dans XGBoost, utilisons l’autre type de modèle de base disponible : 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 utilisant la puissante API d’apprentissage d’XGBoost. Cependant, comme il est peu utilisé, vous devez recourir aux fonctions propres à XGBoost, non compatibles scikit-learn, pour construire le modèle, comme xgb.train().
Pour cela, vous devez créer le dictionnaire de paramètres qui décrit le type de booster que vous souhaitez utiliser (de la même manière que vous avez créé le dictionnaire au chapitre 1 lorsque vous avez utilisé xgb.cv()). La paire clé-valeur qui définit le type de booster (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 précédemment.
Ici, les données ont déjà été séparé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.
Cet exercice fait partie du cours
Extreme Gradient Boosting avec XGBoost
Instructions
- Créez deux objets
DMatrix:DM_trainpour l’ensemble d’entraînement (X_trainety_train), etDM_test(X_testety_test) pour l’ensemble de test. - Créez un dictionnaire de paramètres qui définit le type de
"booster"que vous allez utiliser ("gblinear") ainsi que l’"objective"que vous allez minimiser ("reg:squarederror"). - Entraînez le modèle avec
xgb.train(). Vous devez spécifier des arguments pour les paramètres suivants :params,dtrainetnum_boost_round. Utilisez5itérations de boosting. - Prédisez les étiquettes sur l’ensemble de test avec
xg_reg.predict(), en lui passantDM_test. Assignez àpreds. - Cliquez sur "Soumettre la réponse" pour voir la RMSE !
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))