Začněte nyníZačněte zdarma

Souboj boosterů: Light vs. Extreme

Výkon modelu CatBoost je celkem slušný, ale pojďme vyzkoušet dva další přístupy k boostingu a zjistit, který si povede lépe: „Light“, nebo „Extreme“?

CatBoost se skvěle hodí, pokud data obsahují kategorické příznaky. V tomto případě jsou však všechny příznaky numerické, takže jeden z ostatních přístupů může přinést lepší výsledky.

Protože stavíme regresní modely, použijeme navíc parametr objective, který určuje učící funkci. Pro aplikaci kvadratické chyby nastavíme objective na 'reg:squarederror' u XGBoost a na 'mean_squared_error' u LightGBM.

Navíc pro XGBoost zadáme parametr n_jobs, který zkrátí dobu výpočtu.

POZOR: nepoužívej klasifikátory, jinak ti může vypršet session!

Toto cvičení je součástí kurzu

Ensemble Methods in Python

Zobrazit kurz

Pokyny k cvičení

  • Sestav XGBRegressor s parametry: max_depth = 3, learning_rate = 0.1, n_estimators = 100 a n_jobs=2.
  • Sestav LGBMRegressor s parametry: max_depth = 3, learning_rate = 0.1 a n_estimators = 100.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód