Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Bouw een XGBRegressor met de parameters: max_depth = 3, learning_rate = 0.1, n_estimators = 100 en n_jobs=2.
  • Bouw een LGBMRegressor met de parameters: max_depth = 3, learning_rate = 0.1 en n_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))
Code bewerken en uitvoeren