Concurs de boosting: Light vs Extreme
Deși performanța modelului CatBoost este relativ bună, hai să încercăm alte două variante de boosting și să vedem care se descurcă mai bine: abordarea „Light" sau cea „Extreme".
CatBoost este recomandat în special când există caracteristici categoriale. În acest caz, toate caracteristicile sunt numerice, deci una dintre celelalte abordări ar putea produce rezultate mai bune.
Deoarece construim regresori, vom folosi un parametru suplimentar, objective, care specifică funcția de învățare utilizată. Pentru a aplica eroarea pătratică, setăm objective la 'reg:squarederror' pentru XGBoost și la 'mean_squared_error' pentru LightGBM.
În plus, vom specifica parametrul n_jobs pentru XGBoost, pentru a îmbunătăți timpul de execuție.
ATENȚIE: ai grijă să nu folosești clasificatori, altfel sesiunea ta ar putea expira!
Acest exercițiu face parte din cursul
Metode de ansamblu în Python
Instrucțiuni pentru exercițiu
- Construiește un
XGBRegressorfolosind parametrii:max_depth = 3,learning_rate = 0.1,n_estimators = 100șin_jobs=2. - Construiește un
LGBMRegressorfolosind parametrii:max_depth = 3,learning_rate = 0.1șin_estimators = 100.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))