ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Construa um XGBRegressor usando os parâmetros: max_depth = 3, learning_rate = 0.1, n_estimators = 100 e n_jobs=2.
  • Construa um LGBMRegressor usando os parâmetros: max_depth = 3, learning_rate = 0.1 e n_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))
Editar e executar o código