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]
История
В 2009 году Андрей Гулин разработал библиотеку MatrixNet — проприетарное решение для градиентного бустинга, применявшееся в Яндекс для ранжирования поисковых результатов. С 2009 года MatrixNet использовался во многих проектах компании, включая рекомендательные системы и прогнозирование погоды.
В 2014—2015 годах Андрей Гулин с группой исследователей начал проект Tensornet, направленный на решение задачи работы с категориальными данными. В результате этой работы было создано несколько проприетарных библиотек градиентного бустинга, предлагающих различные подходы к обработке категориальных признаков.
В 2016 году команда по инфраструктуре машинного обучения под руководством Анны Дорогуш приступила к развитию градиентного бустинга в Яндексе (MatrixNet и Tensornet). Итогом стала разработка и публикация с открытым кодом новой версии библиотеки CatBoost, поддерживающей работу с категориальными и текстовыми данными, обучение на GPU, анализ моделей и визуализацию результатов.
CatBoost был открыт для сообщества в июле 2017 года и с тех пор активно развивается как внутри Яндекса, так и сообществом с открытым исходным кодом.
Применение
- JetBrains использует CatBoost для автодополнения кода[17]
- Cloudflare применяет CatBoost для обнаружения ботов[18]
- Careem использует CatBoost для предсказания будущих маршрутов поездок[19]