ПочатиПочніть безкоштовно

Змагання в boosting: Light vs Extreme

Хоча модель CatBoost показує досить гарні результати, спробуймо ще два різновиди boosting і подивімося, який спрацює краще: підхід «Light» чи «Extreme».

CatBoost особливо рекомендований, коли є категоріальні ознаки. У нашому випадку всі ознаки числові, тож один з інших підходів може дати кращі результати.

Оскільки ми будуємо регресори, використаємо додатковий параметр objective, який визначає функцію навчання. Щоб застосувати квадратичну помилку, задайте objective як 'reg:squarederror' для XGBoost і 'mean_squared_error' для LightGBM.

Крім того, вкажемо параметр n_jobs для XGBoost, щоб пришвидшити обчислення.

УВАГА: не використовуйте класифікатори, інакше ваша сесія може завершитися!

Ця вправа є частиною курсу

Ансамблеві методи в Python

Переглянути курс

Інструкції до вправи

  • Створіть XGBRegressor з параметрами: max_depth = 3, learning_rate = 0.1, n_estimators = 100 та n_jobs=2.
  • Створіть LGBMRegressor з параметрами: max_depth = 3, learning_rate = 0.1 і n_estimators = 100.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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))
Редагувати та запускати код