CatBoost
| 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 — свободная программная библиотека с открытым исходным кодом, разрабатываемая компанией Яндекс. Библиотека реализует фреймворк градиентного бустинга, особенностью которого является нестандартный подход к обработке категориальных признаков на основе случайных перестановок, в отличие от традиционных алгоритмов[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 получил широкое распространение среди алгоритмов градиентного бустинга, в первую очередь благодаря следующим возможностям:[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]
Примечания
- ↑ Andrey Gulin - People - Research at Yandex (англ.). research.yandex.com. Дата обращения: 12 июня 2024. Архивировано 19 сентября 2020 года.
- ↑ Yandex open sources CatBoost, a gradient boosting machine learning library (англ.). TechCrunch (18 июля 2017). Дата обращения: 12 июня 2024. Архивировано 18 июля 2017 года.
- ↑ Yegulalp, Serdar Yandex open sources CatBoost machine learning library (англ.). InfoWorld (18 июля 2017). Дата обращения: 12 июня 2024. Архивировано 19 июля 2017 года.
- ↑ Releases · catboost/catboost (англ.). GitHub. Дата обращения: 14 марта 2024. Архивировано 29 апреля 2025 года.
- ↑ 1 2 Prokhorenkova, Liudmila; Gusev, Gleb; Vorobev, Aleksandr; Dorogush, Anna Veronika; Gulin, Andrey (2019-01-20). “CatBoost: unbiased boosting with categorical features”. arXiv preprint [англ.]. arXiv:1706.09516 [cs.LG]. Дата обращения 2024-06-12. Используется устаревший параметр
|class=(справка) - ↑ Python Package Index PYPI: catboost (англ.). PyPI. Дата обращения: 20 августа 2020.
- ↑ Conda forge package catboost-r (англ.). Anaconda. Дата обращения: 30 августа 2020. Архивировано 23 января 2025 года.
- ↑ Maven Repository: ai.catboost » catboost-prediction (англ.). mvnrepository.com. Дата обращения: 30 августа 2020. Архивировано 29 апреля 2025 года.
- ↑ staff, InfoWorld Bossie Awards 2017: The best machine learning tools (англ.). InfoWorld (27 сентября 2017). Архивировано 29 ноября 2020 года.
- ↑ State of Data Science and Machine Learning 2020 (англ.). Дата обращения: 12 июня 2024. Архивировано 19 ноября 2020 года.
- ↑ State of Data Science and Machine Learning 2021 (англ.). Дата обращения: 12 июня 2024. Архивировано 16 августа 2025 года.
- ↑ PyPI Stats catboost (англ.). PyPI Stats. Дата обращения: 12 июня 2024. Архивировано 23 января 2025 года.
- ↑ Joseph, Manu The Gradient Boosters V: CatBoost (англ.). Deep & Shallow (29 февраля 2020). Дата обращения: 30 августа 2020. Архивировано 24 июня 2023 года.
- ↑ Dorogush, Anna Veronika; Ershov, Vasily; Gulin, Andrey (2018-10-24). “CatBoost: gradient boosting with categorical features support”. arXiv preprint [англ.]. arXiv:1810.11363 [cs.LG]. Дата обращения 2024-06-12. Используется устаревший параметр
|class=(справка) - ↑ CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs (англ.). NVIDIA Developer Blog (13 декабря 2018). Дата обращения: 30 августа 2020. Архивировано 17 августа 2025 года.
- ↑ Code Completion, Episode 4: Model Training (англ.). JetBrains Developer Blog (20 августа 2021). Дата обращения: 12 июня 2024. Архивировано 20 августа 2021 года.
- ↑ Stop the Bots: Practical Lessons in Machine Learning (англ.). The Cloudflare Blog (20 февраля 2019). Дата обращения: 12 июня 2024. Архивировано 6 августа 2025 года.
- ↑ How Careem's Destination Prediction Service speeds up your ride (англ.). Careem (19 февраля 2019). Дата обращения: 12 июня 2024.
Ссылки
- Программное обеспечение по алфавиту
- Программное обеспечение, разработанное в 2017 году
- Свободное программное обеспечение
- Машинное обучение
- Свободное программное обеспечение, написанное на C++
- Свободное и открытое программное обеспечение
- Прикладное машинное обучение
- Программное обеспечение с лицензией Apache