CatBoost

CatBoost — свободная программная библиотека с открытым исходным кодом, разрабатываемая компанией Яндекс. Библиотека реализует фреймворк градиентного бустинга, особенностью которого является нестандартный подход к обработке категориальных признаков на основе случайных перестановок, в отличие от традиционных алгоритмов[6]. CatBoost работает на операционных системах Linux, Windows, macOS и доступен для языков Python[7], R[8], а модели, построенные с использованием CatBoost, могут использоваться для предсказаний на C++, Java[9], C#, Rust, Core ML, ONNX, и PMML. Исходный код распространяется под лицензией Apache License и доступен на GitHub[2].

Журнал InfoWorld в 2017 году включил CatBoost в список «лучших инструментов для машинного обучения» наряду с TensorFlow, PyTorch, XGBoost и другими библиотеками[10].

Сервис Kaggle отметил CatBoost как одну из наиболее часто используемых библиотек для машинного обучения в мире: в опросе 2020 года библиотека заняла восьмое место по частоте использования[11], а в 2021 году — седьмое место[12].

По состоянию на апрель 2022 года CatBoost устанавливается около 100 000 раз в день с репозитория PyPI[13].

Общие сведения
CatBoost
Тип Машинное обучение
Авторы Андрей Гулин[1] / Яндекс
Разработчики Яндекс и участники CatBoost[2]
Написана на Python, R, C++, Java
Операционные системы Linux, macOS, Windows
Первый выпуск 18 июля 2017[3][4]
Аппаратные платформы Linux, macOS и Microsoft Windows
Последняя версия 1.2.3[5] (23 февраля 2024)
Лицензия Apache License 2.0
Сайт catboost.ai

Возможности

CatBoost получил широкое распространение среди алгоритмов градиентного бустинга, в первую очередь благодаря следующим возможностям:[14]

  • Родная поддержка категориальных признаков[15]
  • Быстрое обучение на GPU[16]
  • Визуализация и инструменты для анализа моделей и признаков
  • Использование симметричных (обливиус) деревьев для ускорения выполнения
  • Ordered boosting для снижения переобучения[6]

История

В 2009 году Андрей Гулин разработал библиотеку MatrixNet — проприетарное решение для градиентного бустинга, применявшееся в Яндекс для ранжирования поисковых результатов. С 2009 года MatrixNet использовался во многих проектах компании, включая рекомендательные системы и прогнозирование погоды.

В 2014—2015 годах Андрей Гулин с группой исследователей начал проект Tensornet, направленный на решение задачи работы с категориальными данными. В результате этой работы было создано несколько проприетарных библиотек градиентного бустинга, предлагающих различные подходы к обработке категориальных признаков.

В 2016 году команда по инфраструктуре машинного обучения под руководством Анны Дорогуш приступила к развитию градиентного бустинга в Яндексе (MatrixNet и Tensornet). Итогом стала разработка и публикация с открытым кодом новой версии библиотеки CatBoost, поддерживающей работу с категориальными и текстовыми данными, обучение на GPU, анализ моделей и визуализацию результатов.

CatBoost был открыт для сообщества в июле 2017 года и с тех пор активно развивается как внутри Яндекса, так и сообществом с открытым исходным кодом.

Применение

  • JetBrains использует CatBoost для автодополнения кода[17]
  • Cloudflare применяет CatBoost для обнаружения ботов[18]
  • Careem использует CatBoost для предсказания будущих маршрутов поездок[19]

Примечания