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
Instructions de l’exercice
- 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 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,dtrainetnum_boost_round. Utilisez5itérations de rehaussement. - Prédisez les étiquettes sur l'ensemble de test avec
xg_reg.predict(), en lui passantDM_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))