Математичні відмінності між GBM, XGBoost, LightGBM, CatBoost
Існує кілька реалізацій сімейства GBDT, таких як:
- GBM
- XGBoost
- СвітлоGBM
- Catboost.
Які відмінності математика між цими різними реалізаціями?
Здається, Catboost перевершує інші реалізації, навіть використовуючи лише налаштування за замовчуванням, засновані на цьому еталоні, але він все ще дуже повільний.
Я припускаю, що catboost не використовує змінені змінні, тому вага, присвоєний кожній (категоріальній) змінній, є більш збалансованим, ніж інші реалізації, тому змінні з високою потужністю не мають більшої ваги, ніж інші. Це дозволяє слабким категоричним (низька потужність) проникати в певні дерева, що призводить до кращих показників. Крім цього, я не маю іншого пояснення.
Ви хочете ознайомитися з цим документом англійською мовою від команди Яндекса щодо математичної унікальності CATBoost.
Я прочитав це коротко, і серед небагатьох речей, які мені вдалося швидко зрозуміти, був той факт, що вони не використовують залишок, отриманий на ПОЇЗД зробити ТРЕНУВАННЯ, оскільки ці залишки створюють оптимістичне упередження щодо якості навчання. ( Оновлення: ця новинка пропонує спосіб боротьби із переобладнанням, саме тому алгоритм працював краще у порівнянні зі своїми аналогами, за винятком різних способів попередньої обробки категоріальних змінних).
Вибачте, що я не дав точної та повної відповіді.
Математичні відмінності між GBM та XGBoost
По-перше, я пропоную вам прочитати статтю Фрідмана про машину для армування градієнта, що застосовується до моделей лінійних регресорів, класифікаторів та дерев прийняття рішень. https://statweb.stanford.edu/
Я не хотів би тут вдаватися до деталей. Це просто хороше читання, яке охоплює різні типи збитків (L) і, крім концепції різного значення. Звичайно, це документ, що визначає реалізацію методу спуску у просторі функцій (моделі низького рівня), а не параметри, що мають на меті мінімізувати втрати.
Ви знайдете математичну віньєтку для моделі XGBoost від Tianqi Chen et al. Тепер стає цікаво. Кілька математичних відхилень від цієї моделі утворюють класичний GBM Фрідмана:
- Регульовані (покарані) параметри (і пам’ятайте, що параметри посилення - це функція, дерева або лінійні моделі): доступні L1 та L2.

- Використовуйте другі похідні, щоб пришвидшити процес (якщо він використовувався раніше, виправте мене).
На цьому етапі: подивіться тут, щоб знайти реалізацію квантильних втрат у CATBoost, яка є дуже зручною і забезпечує як перші, так і другі похідні: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/error_functions.h
Хоча ця функція втрати L1 може вам не знадобитися в XGBoost, ви можете спробувати порівняти реалізацію Яндекса з деякими спеціальними функціями втрат, написаними для XGB.
- Також CATBoost чудово працює з категоріальними функціями, тоді як XGBoost приймає лише цифрові входи.
Вони пропонують різноманітні способи включення категоріальних особливостей у навчання шаблону на додаток до використання добре відомого старого підходу. Зменшення розмірів вхідного простору без втрати великої кількості інформації є однією з можливих причин того, чому встановлена модель менш переобладнана.
Я закінчив. Я не використовую LightGBM, тому не можу прокидати на нього світло.