Kom igångKom igång gratis

Boostningstävling: Light vs Extreme

CatBoost-modellen presterar relativt bra, men låt oss prova två andra varianter av boosting och se vilken som ger bäst resultat: den "lätta" eller den "extrema" ansatsen.

CatBoost rekommenderas starkt när det finns kategoriska särdrag. I det här fallet är alla särdrag numeriska, vilket innebär att någon av de andra metoderna kan ge bättre resultat.

Eftersom vi bygger regressorer använder vi en extra parameter, objective, som anger vilken inlärningsfunktion som ska användas. För att tillämpa ett kvadratfel sätter vi objective till 'reg:squarederror' för XGBoost och 'mean_squared_error' för LightGBM.

Dessutom anger vi parametern n_jobs för XGBoost för att förbättra beräkningstiden.

OBS: var noga med att inte använda klassificerare, annars kan din session ta slut!

Den här övningen är en del av kursen

Ensemblemetoder i Python

Visa kurs

Övningsinstruktioner

  • Bygg en XGBRegressor med parametrarna: max_depth = 3, learning_rate = 0.1, n_estimators = 100 och n_jobs=2.
  • Bygg en LGBMRegressor med parametrarna: max_depth = 3, learning_rate = 0.1 och n_estimators = 100.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod