Настройка max_depth
В этом упражнении вам предстоит настроить параметр max_depth, который определяет максимальную глубину каждого дерева в раунде бустинга. Меньшие значения дают более мелкие деревья, а большие — более глубокие.
Это упражнение является частью курса
Экстремальный градиентный бустинг с XGBoost
Инструкции к упражнению
- Создайте список
max_depthsдля хранения следующих значений параметра"max_depth":2,5,10и20. - Переберите элементы списка
max_depthsс помощью циклаfor. - На каждой итерации цикла
forзадавайте новое значение"max_depth"и выполняйте 2-кратную кросс-валидацию с ранней остановкой (5раундов),10раундами бустинга, метрикой"rmse"и параметромseed, равным123. Убедитесь, что результат возвращается в виде DataFrame.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create your housing DMatrix
housing_dmatrix = xgb.DMatrix(data=X,label=y)
# Create the parameter dictionary
params = {"objective":"reg:squarederror"}
# Create list of max_depth values
max_depths = ____
best_rmse = []
# Systematically vary the max_depth
for curr_val in ____:
params["____"] = ____
# Perform cross-validation
cv_results = ____
# Append the final round rmse to best_rmse
best_rmse.append(cv_results["test-rmse-mean"].tail().values[-1])
# Print the resultant DataFrame
print(pd.DataFrame(list(zip(max_depths, best_rmse)),columns=["max_depth","best_rmse"]))