Boosting-wedstrijd: Light vs Extreme
Hoewel de prestaties van het CatBoost-model redelijk goed zijn, proberen we twee andere smaken van boosting om te zien welke beter scoort: de "Light"- of de "Extreme"-aanpak.
CatBoost is sterk aan te raden wanneer er categorische features zijn. In dit geval zijn alle features numeriek, dus een van de andere aanpakken kan betere resultaten opleveren.
Omdat we regressors bouwen, gebruiken we een extra parameter, objective, die de te gebruiken leerfunctie bepaalt. Om een kwadratische fout toe te passen, zetten we objective op 'reg:squarederror' voor XGBoost en 'mean_squared_error' voor LightGBM.
Daarnaast geven we de parameter n_jobs op voor XGBoost om de rekentijd te verbeteren.
LET OP: gebruik geen classifiers, anders kan je sessie verlopen!
Deze oefening maakt deel uit van de cursus
Ensemblemethoden in Python
Oefeninstructies
- Bouw een
XGBRegressormet de parameters:max_depth = 3,learning_rate = 0.1,n_estimators = 100enn_jobs=2. - Bouw een
LGBMRegressormet de parameters:max_depth = 3,learning_rate = 0.1enn_estimators = 100.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))