Concurso de boosting: Light vs Extreme
Aunque el rendimiento del modelo CatBoost es bastante bueno, probemos otros dos sabores de boosting y veamos cuál funciona mejor: el enfoque "Light" o el "Extreme".
CatBoost es muy recomendable cuando hay variables categóricas. En este caso, todas las variables son numéricas, por lo que alguno de los otros enfoques podría dar mejores resultados.
Como vamos a crear regresores, usaremos un parámetro adicional, objective, que especifica la función de aprendizaje a utilizar. Para aplicar el error cuadrático, estableceremos objective como 'reg:squarederror' para XGBoost y 'mean_squared_error' para LightGBM.
Además, especificaremos el parámetro n_jobs para XGBoost para mejorar el tiempo de cómputo.
OBS: ¡ten cuidado de no usar clasificadores o tu sesión podría expirar!
Este ejercicio forma parte del curso
Ensemble Methods in Python
Instrucciones del ejercicio
- Crea un
XGBRegressorusando los parámetros:max_depth = 3,learning_rate = 0.1,n_estimators = 100yn_jobs=2. - Crea un
LGBMRegressorusando los parámetros:max_depth = 3,learning_rate = 0.1yn_estimators = 100.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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))