1. Learn
  2. /
  3. Курси
  4. /
  5. Екстремальний градієнтний бустинг з XGBoost

Connected

Вправа

Автоматичний вибір кількості бустингових раундів за допомогою early_stopping

Тепер, замість того щоб намагатися вручну підібрати найкращу кількість бустингових раундів, ви можете легко доручити XGBoost автоматично обрати їх кількість у межах xgb.cv(). Це робиться за допомогою техніки під назвою раннє зупинення (early stopping).

Раннє зупинення працює так: після кожного бустингового раунду модель XGBoost перевіряється на відкладеній вибірці, і створення наступних раундів зупиняється (тобто тренування моделі завершується раніше), якщо метрика на відкладеній вибірці (у нашому випадку "rmse") не поліпшується протягом заданої кількості раундів. Тут ви використаєте параметр early_stopping_rounds у xgb.cv() з великою максимальною кількістю бустингових раундів (50). Май̆те на увазі: якщо метрика на відкладеній вибірці безперервно поліпшується аж до досягнення num_boost_rounds, раннє зупинення не відбудеться.

Тут для вас уже створено DMatrix і словник параметрів. Ваше завдання — виконати перехресну перевірку з раннім зупиненням. Уперед!

Інструкції

100 XP
  • Виконайте 3-фолд перехресну перевірку з раннім зупиненням і метрикою "rmse". Використайте 10 раундів раннього зупинення та 50 бустингових раундів. Задайте seed рівним 123 і переконайтеся, що результат — це DataFrame pandas. Не забудьте вказати інші параметри, такі як dtrain, params і metrics.
  • Виведіть cv_results.