Математичні відмінності між 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.

lightgbm

  • Використовуйте другі похідні, щоб пришвидшити процес (якщо він використовувався раніше, виправте мене).

На цьому етапі: подивіться тут, щоб знайти реалізацію квантильних втрат у CATBoost, яка є дуже зручною і забезпечує як перші, так і другі похідні: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/error_functions.h

Хоча ця функція втрати L1 може вам не знадобитися в XGBoost, ви можете спробувати порівняти реалізацію Яндекса з деякими спеціальними функціями втрат, написаними для XGB.

  • Також CATBoost чудово працює з категоріальними функціями, тоді як XGBoost приймає лише цифрові входи.

Вони пропонують різноманітні способи включення категоріальних особливостей у навчання шаблону на додаток до використання добре відомого старого підходу. Зменшення розмірів вхідного простору без втрати великої кількості інформації є однією з можливих причин того, чому встановлена ​​модель менш переобладнана.

Я закінчив. Я не використовую LightGBM, тому не можу прокидати на нього світло.