НачатьНачать бесплатно

Настройка eta

Пришло время попрактиковаться в настройке гиперпараметров XGBoost и понаблюдать за их влиянием на качество модели! Начнём с настройки параметра "eta", известного также как скорость обучения.

Скорость обучения в 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"]))
Редактировать и запускать код