Confronto de boosting: Light vs Extreme
Embora o desempenho do modelo CatBoost seja relativamente bom, vamos testar dois outros sabores de boosting e ver qual se sai melhor: a abordagem "Light" ou a "Extreme".
O CatBoost é altamente recomendado quando há variáveis categóricas. Neste caso, todos os atributos são numéricos, portanto uma das outras abordagens pode produzir resultados melhores.
Como estamos construindo regressors, usaremos um parâmetro adicional, objective, que especifica a função de aprendizado a ser usada. Para aplicar o erro quadrático, vamos definir objective como 'reg:squarederror' para XGBoost e 'mean_squared_error' para LightGBM.
Além disso, vamos especificar o parâmetro n_jobs para XGBoost para melhorar o tempo de execução do cálculo.
OBS: tenha cuidado para não usar classificadores, ou sua sessão pode expirar!
Este exercício faz parte do curso
Métodos de Ensemble em Python
Instruções do exercício
- Construa um
XGBRegressorusando os parâmetros:max_depth = 3,learning_rate = 0.1,n_estimators = 100en_jobs=2. - Construa um
LGBMRegressorusando os parâmetros:max_depth = 3,learning_rate = 0.1en_estimators = 100.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))