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

Тюнінг eta

Час попрактикуватися в налаштуванні інших гіперпараметрів XGBoost і подивитися, як це впливає на якість моделі! Ви почнете з налаштування "eta", також відомого як швидкість навчання (learning rate).

Швидкість навчання в XGBoost — це параметр у діапазоні від 0 до 1: що більше значення "eta", то сильніше штрафуються ваги ознак, тобто регуляризація стає жорсткішою.

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

Екстремальний градієнтний бустинг з XGBoost

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

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

  • Створіть список eta_vals, у якому збережіть такі значення "eta": 0.001, 0.01 і 0.1.
  • Проітерайтеся списком eta_vals за допомогою циклу for.
  • У кожній ітерації циклу for встановіть ключ "eta" у params рівним curr_val. Потім виконайте 3-кратну перехресну перевірку з достроковою зупинкою (5 раундів), 10 раундами бустингу, метрикою "rmse" і seed рівним 123. Переконайтеся, що результат — це DataFrame.
  • Додайте значення RMSE з фінального раунду до списку best_rmse.

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

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

# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary for each tree (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}

# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []

# Systematically vary the eta 
for curr_val in ____:

    params["___"] = curr_val
    
    # Perform cross-validation: cv_results
    cv_results = ____
    
    
    
    # Append the final round rmse to best_rmse
    ____.____(____["____"].tail().values[-1])

# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))
Редагувати та запускати код