Є багато повідомлень в блогах, відео на YouTube і т.д. про ідеях розфасовки або підвищення дерев. Моє загальне розуміння полягає в тому, що псевдокод для кожного такий:
Мішок:
- Візьміть N випадкових вибірок x% зразків і y% ознак
- Встановіть свою модель (наприклад, дерево рішень) на кожен з N
- Прогнозуйте з кожним N
- Порівнюйте прогнози, щоб отримати остаточний прогноз
Підвищення:
- Встановіть модель (наприклад, дерево рішень) до своїх даних
- Отримайте залишки
- Підійміть свою модель до залишків
- Перехід до 2 для N прискорення раундів
- Остаточний прогноз - це зважена сума послідовних прогнокторів.
Я візьму будь-які роз’яснення до свого розуміння вище, але моє намічене запитання таке:
Як у XGBoost, так і в LightGBM є парами, які дозволяють створювати пакети. Додаток - це не Bagging OR Boosting (про що йдеться у кожному дописі блогу), а Baging AND Boosting. Що таке псевдокод для того, де і коли відбувається комбіноване пакування та прискорення?
Я очікував, що це будуть «задекоровані підсилені дерева», але, здається, це «підсилені деревця, що стримуються». Різниця здається істотною.
Заборонені підсилені дерева:
- Візьміть N випадкових вибірок x% зразків і y% ознак
- Встановити підсилені дерева на кожному з N зразків
- Прогнозуйте з кожним N
- Порівнюйте прогнози, щоб отримати остаточний прогноз
Це здається найкращим способом зробити це. Зрештою, ризик прискорення - це надмірне оснащення, і головна користь переробки мішків - зменшення перевитрати; мішати купу прискорених моделей здається чудовою ідеєю.
Однак, переглянувши, наприклад, scikit-learn
gradient_boosting.py (який робить вибірку мішок, але не випадковим вибором функцій), і обробляти разом деякі невеликі самородки в публікаціях про LightGBM та XGBoost, схоже, що XGBoost і LightGBM працюють так:
Підсилені мішковинні дерева:
- Встановити дерево рішень до своїх даних
- Для я в N прискорення раундів:
- Отримайте залишки
- якщо я мод bag_frequency == 0 (тобто, мішок кожні 5 раундів):
- Візьміть одну випадкову вибірку x% зразків і y% ознак; використовуйте цей випадковий зразок вперед
- підходять дерево до залишків
- Остаточний прогноз - це зважена сума послідовних прогнокторів.
Будь ласка, виправте моє розуміння тут і заповніть деталі. Підсилене мішковане дерево (лише 1 випадкове дерево на bag_frequency) не здається таким потужним, як Bagged Boosted Tree.