IniziaInizia gratis

Sfida boosting: Light vs Extreme

Anche se le prestazioni del modello CatBoost sono piuttosto buone, proviamo altre due varianti di boosting per vedere quale va meglio: l'approccio "Light" o quello "Extreme".

CatBoost è fortemente consigliato quando ci sono feature categoriche. In questo caso, tutte le feature sono numeriche, quindi uno degli altri approcci potrebbe dare risultati migliori.

Dato che stiamo costruendo dei regressori, useremo un parametro aggiuntivo, objective, che specifica la funzione di apprendimento da usare. Per applicare l'errore quadratico, imposteremo objective su 'reg:squarederror' per XGBoost e su 'mean_squared_error' per LightGBM.

Inoltre, specificheremo il parametro n_jobs per XGBoost per migliorarne i tempi di calcolo.

ATTENZIONE: non usare i classificatori, altrimenti la tua sessione potrebbe scadere!

Questo esercizio fa parte del corso

Metodi Ensemble in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un XGBRegressor usando i parametri: max_depth = 3, learning_rate = 0.1, n_estimators = 100 e n_jobs=2.
  • Crea un LGBMRegressor usando i parametri: max_depth = 3, learning_rate = 0.1 e n_estimators = 100.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice