CommencezCommencez gratuitement

Concours de boosting : Light vs Extreme

Même si le modèle CatBoost donne des résultats plutôt bons, essayons deux autres variantes de boosting pour voir laquelle fait mieux : l'approche « Light » ou l'approche « Extreme ».

CatBoost est fortement recommandé en présence de variables catégorielles. Ici, toutes les variables sont numériques ; une des autres approches pourrait donc mieux performer.

Comme nous entraînons des régressions, nous allons utiliser un paramètre supplémentaire, objective, qui précise la fonction d'apprentissage à employer. Pour appliquer une erreur quadratique, nous fixerons objective à 'reg:squarederror' pour XGBoost et à 'mean_squared_error' pour LightGBM.

De plus, nous préciserons le paramètre n_jobs pour XGBoost afin d'accélérer le temps de calcul.

REMARQUE : veillez à ne pas utiliser de classifieurs, sinon votre session pourrait expirer !

Cette activité fait partie du cours

Méthodes d'ensemble en Python

Voir le cours

Instructions de l’exercice

  • Créez un XGBRegressor avec les paramètres : max_depth = 3, learning_rate = 0.1, n_estimators = 100 et n_jobs=2.
  • Créez un LGBMRegressor avec les paramètres : max_depth = 3, learning_rate = 0.1 et n_estimators = 100.

Exercice interactif pratique

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

# Build and fit an XGBoost regressor
reg_xgb = ____.____(____, ____, ____, ____, objective='reg:squarederror', random_state=500)
reg_xgb.fit(X_train, y_train)

# Build and fit a LightGBM regressor
reg_lgb = ____.____(____, ____, ____, objective='mean_squared_error', seed=500)
reg_lgb.fit(X_train, y_train)

# Calculate the predictions and evaluate both regressors
pred_xgb = reg_xgb.predict(X_test)
rmse_xgb = np.sqrt(mean_squared_error(y_test, pred_xgb))
pred_lgb = reg_lgb.predict(X_test)
rmse_lgb = np.sqrt(mean_squared_error(y_test, pred_lgb))

print('Extreme: {:.3f}, Light: {:.3f}'.format(rmse_xgb, rmse_lgb))
Modifier et exécuter le code