CatBoost

Оновлено: 31.07.2023

Нові алгоритми ML стають дедалі популярнішими, оскільки конкурси з Data Science стають все більш помітними, зокрема на сайті Kaggle. Якщо раніше найбільш конкурентоспроможним і точним алгоритмом був XGBoost, то тепер новим лідером став CatBoost. Бізнес Яндекс випустив бібліотеку з відкритим вихідним кодом, засновану на деревах рішень з градієнтним бустингом. Вони включають посилання на GitHub, приклади, новини, бенчмарки, коментарі, контакти, навчальні посібники та інструкції з встановлення у своєму керівництві. Документація CatBoost містить бенчмарки і доводить, що XGBoost, LightGBM і H2O є найкращими як з налаштованими, так і зі стандартними результатами. CatBoost, з іншого боку, є найкращим рішенням, якщо у вас багато змінних категорій. Якщо ви хочете дізнатися більше про фантастичну бібліотеку Яндекса, продовжуйте читати далі.

  • CatBoost рекомендується, оскільки він простий у використанні, ефективний і особливо добре працює з категоріальними даними.
.

CatBoost означає "категоричний" бустінг, як випливає з назви. Він швидший у використанні, ніж, наприклад, XGBoost, оскільки не вимагає попередньої обробки даних, яка може зайняти найбільше часу у звичайному процесі побудови моделі Data Science. Інша проблема з іншими методами полягає в тому, що коли вони використовують категоріальні змінні, такі як ідентифікатори, вони створюють неможливу для обчислення матрицю з сотнями стовпців, побудованих з фіктивних змінних або однократного кодування. CatBoost вирішує цю проблему, перетворюючи категорійні дані в унікальний метод.

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

При виборі оптимальних способів розбиття даних на бакети використовується квантування числових ознак на основі початкових налаштувань CatBoost.

Особливості

  • Реалізація- CatBoost має зручні інтерфейси. Завдяки інтерфейсам scikit-learn, R та командного рядка, алгоритм CatBoost можна використовувати у Python.
.

GPU-версія CatBoost швидка і масштабована, що дозволяє дослідникам і розробникам машинного навчання в Яндексі працювати з наборами даних з десятками тисяч об'єктів без затримок.

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

  • Прогнози та швидше навчання- Максимальна кількість графічних процесорів на сервер до покращення сервера становила вісім. Хоча деякі набори даних є більшими, CatBoost використовує переваги розподілених графічних процесорів.
.

Завдяки цій особливості CatBoost може навчатися і генерувати прогнози в 15 разів швидше, ніж інші алгоритми.

  • Співтовариство- Відсутність персоналу, до якого можна звернутися, якщо у вас виникла проблема з продуктом, який ви використовуєте, може бути досить обтяжливою. Однак у випадку з CatBoost це не так.
.

Спільнота CatBoost розширюється, і творці чекають на коментарі та пропозиції. Доступні спільнота в Slack, Telegram-канал та довідка по переповненню стеку. Якщо ви коли-небудь знайдете проблему, на GitHub є сторінка для повідомлень про помилки.

Реалізація

Ось кілька ситуацій, коли використання CatBoost є ідеальним:

  • На великому наборі даних потрібен короткий період навчання - CatBoost, на відміну від деяких інших алгоритмів машинного навчання, ефективно працює з обмеженою кількістю даних. З іншого боку, слід уникати надмірного навчання. Можливо, тут потрібно трохи змінити налаштування.
  • Робота з невеликою колекцією даних - це одна з головних переваг алгоритму CatBoost. Припустимо, ваша колекція даних містить категоріальні елементи, і перетворення їх у числове представлення видається складним завданням. У цьому випадку ви можете скористатися перевагами CatBoost, щоб спростити процес створення моделі.
  • Категоріальні набори даних - CatBoost набагато швидший за багато інших методів машинного навчання при роботі з цими типами наборів даних. Розбиття, деревоподібна структура та навчання налаштовані на продуктивність GPU та CPU.
.

Заключні думки

CatBoost надає кілька корисних функцій, які легко застосовувати. Налаштування за замовчуванням дають чудові результати навіть без налаштування параметрів, категоріальні ознаки не потребують попередньої обробки, швидкий розрахунок, підвищена точність з мінімальним перенастроюванням та ефективні прогнози - ось деякі з основних переваг цієї бібліотеки конкурентних переваг. Дослідники Яндекса створили надзвичайно корисну бібліотеку, яку можна використовувати в різних сценаріях конкуренції, кар'єри та виробництва. Вони також продемонстрували, що порівняно з LightGBM, їхня бібліотека перевершує за якістю деякі відомі набори даних.