CatBoost est une bibliothèque logicielle open source développée par Yandex qui fournit un cadre de boosting par gradient pour l'apprentissage automatique. Elle se distingue par son approche basée sur les permutations pour traiter les caractéristiques catégorielles, ce qui diffère des algorithmes classiques, ainsi que par l'utilisation d'arbres oublieux pour une exécution plus rapide. La bibliothèque est conçue pour être efficace et conviviale, avec un support pour l'entraînement sur GPU et des outils d'analyse et de visualisation de modèles.
CatBoost est disponible sur Linux, Windows et macOS, et peut être utilisée via des interfaces Python et R. Les modèles entraînés avec CatBoost peuvent être déployés pour des prédictions en C++, Java, C#, Rust, Core ML, ONNX et PMML. Le code source est sous licence Apache et est publiquement disponible sur GitHub. La bibliothèque a gagné en reconnaissance dans la communauté de l'apprentissage automatique, le magazine InfoWorld l'ayant nommée l'un des meilleurs outils d'apprentissage automatique en 2017, aux côtés de TensorFlow, PyTorch, XGBoost et d'autres bibliothèques.
Historique et développement
Les origines de CatBoost remontent à 2009, lorsque Andrey Gulin a développé MatrixNet, une bibliothèque propriétaire de boosting par gradient utilisée chez Yandex pour classer les résultats de recherche. MatrixNet a ensuite été appliquée à divers projets chez Yandex, notamment des systèmes de recommandation et la prévision météorologique. Entre 2014 et 2015, Gulin et une équipe de chercheurs ont lancé un nouveau projet appelé Tensornet, axé sur la résolution du défi du travail avec des données catégorielles. Ce travail a conduit à la création de plusieurs bibliothèques propriétaires de boosting par gradient avec différentes approches pour traiter les caractéristiques catégorielles.
En 2016, l'équipe d'infrastructure d'apprentissage automatique chez Yandex, dirigée par Anna Dorogush, a commencé à travailler sur le boosting par gradient, en s'appuyant sur les fondations de MatrixNet et Tensornet. Cet effort a abouti à l'implémentation et à l'ouverture du code source de CatBoost, qui intègre le support des données catégorielles et textuelles, l'entraînement sur GPU, l'analyse de modèles et des outils de visualisation. CatBoost a été open-sourcé en juillet 2017 et est depuis lors en développement actif par Yandex et la communauté open source.
Caractéristiques clés
CatBoost a gagné en popularité par rapport à d'autres algorithmes de boosting par gradient principalement grâce à plusieurs caractéristiques distinctives. L'un de ses attributs les plus notables est la gestion native des caractéristiques catégorielles, ce qui élimine le besoin de prétraitement approfondi tel que l'encodage one-hot. La bibliothèque offre également un entraînement rapide sur GPU, permettant un développement accéléré de modèles sur du matériel compatible. De plus, CatBoost fournit des visualisations et des outils pour l'analyse de modèles et de caractéristiques, aidant les praticiens à comprendre et interpréter leurs modèles. L'utilisation d'arbres oublieux, également appelés arbres symétriques, contribue à des temps d'exécution plus rapides. En outre, CatBoost implémente le boosting ordonné, une technique conçue pour surmonter le surapprentissage en réduisant la fuite de la cible.
Gestion des caractéristiques catégorielles
Une innovation centrale de CatBoost est son approche des caractéristiques catégorielles. Les méthodes traditionnelles de boosting par gradient exigent souvent de convertir les variables catégorielles en représentations numériques, ce qui peut entraîner une perte d'information ou une augmentation de la dimensionnalité. CatBoost utilise à la place un algorithme basé sur des permutations qui calcule des statistiques cibles pour les caractéristiques catégorielles d'une manière qui réduit le biais. Cette méthode implique de générer des permutations aléatoires des données d'entraînement et de les utiliser pour calculer des statistiques pour chaque catégorie, ce qui aide à prévenir le surapprentissage et améliore la généralisation. Ce support natif permet aux utilisateurs de fournir directement des données catégorielles au modèle sans encodage manuel approfondi.
Performance et adoption
CatBoost a été reconnue pour sa performance et sa facilité d'utilisation dans la communauté de l'apprentissage automatique. Kaggle, une plateforme importante pour les compétitions de science des données, a listé CatBoost comme l'un des cadres d'apprentissage automatique les plus fréquemment utilisés au monde. Dans l'enquête Kaggle de 2020, elle a été classée comme le 8e cadre d'apprentissage automatique le plus fréquemment utilisé, et dans l'enquête de 2021, elle est passée à la 7e position. La popularité de la bibliothèque se reflète également dans ses chiffres d'installation ; en avril 2022, CatBoost était installée environ 100 000 fois par jour depuis le dépôt PyPI. Cette adoption généralisée est attribuée à son ensemble de fonctionnalités robuste, à sa performance et à la communauté active qui soutient son développement.
Applications dans l'industrie
CatBoost est utilisée par plusieurs entreprises pour diverses tâches d'apprentissage automatique. JetBrains, une entreprise de développement logiciel, utilise CatBoost pour la complétion de code, aidant les développeurs à écrire du code plus efficacement. Cloudflare, une entreprise d'infrastructure web et de sécurité, emploie CatBoost pour la détection de bots, identifiant et atténuant le trafic automatisé. Careem, un service de covoiturage opérant au Moyen-Orient, utilise CatBoost pour prédire les destinations futures des trajets, améliorant son service et son efficacité opérationnelle. Ces exemples illustrent la polyvalence de CatBoost dans différents domaines, du développement logiciel à la cybersécurité et aux transports.
Comparaison avec d'autres cadres
CatBoost est souvent comparée à d'autres bibliothèques de boosting par gradient telles que XGBoost et LightGBM. Bien que toutes trois soient puissantes et largement utilisées, CatBoost se distingue par sa gestion native des caractéristiques catégorielles et son accent sur la réduction du surapprentissage grâce au boosting ordonné. XGBoost, développée par Tianqi Chen, est connue pour son évolutivité et sa performance, tandis que LightGBM, développée par Microsoft, met l'accent sur la vitesse et une utilisation mémoire plus faible. La structure d'arbres symétriques de CatBoost peut conduire à des temps d'inférence plus rapides, et son support GPU est considéré comme compétitif. Le choix entre ces cadres dépend souvent des exigences spécifiques d'un projet, telles que la nature des données et les ressources informatiques disponibles.
Analyse et visualisation de modèles
CatBoost fournit une gamme d'outils pour l'analyse et la visualisation de modèles, essentiels pour comprendre et déboguer les modèles d'apprentissage automatique. Les utilisateurs peuvent générer des scores d'importance des caractéristiques, qui indiquent la contribution de chaque caractéristique aux prédictions du modèle. La bibliothèque prend également en charge la visualisation de la progression de l'entraînement, y compris les courbes de perte et les graphiques de métriques, ce qui aide à surveiller la performance du modèle pendant l'entraînement. De plus, CatBoost offre des outils pour explorer les prédictions du modèle et pour identifier des problèmes potentiels tels que le surapprentissage. Ces capacités facilitent la construction et l'affinement des modèles par les praticiens.
Déploiement et intégration
Les modèles CatBoost peuvent être déployés dans une variété d'environnements, ce qui en fait un choix flexible pour les systèmes de production. La bibliothèque prend en charge l'exportation de modèles vers plusieurs formats, notamment Core ML pour les plateformes Apple, ONNX pour l'interopérabilité entre différents cadres, et PMML pour le langage de balisage de modèles prédictifs. Cela permet d'intégrer les modèles dans des applications écrites en C++, Java, C#, Rust et d'autres langages. La disponibilité de ces options d'exportation garantit que CatBoost peut être utilisée dans des piles logicielles diverses, des applications mobiles aux systèmes serveur à grande échelle.
Voir aussi
- Apprentissage automatique
- Intelligence artificielle
- Apprentissage profond
- Réseau de neurones
- Xerox PARC
- MIT CSAIL
- Stanford AI Lab
- Berkeley AI Research
- Université Carnegie Mellon
- Université de Toronto
- Université d'Oxford
- Michael Jordan
- Thomas Dietterich
- Daphne Koller
- Anima Anandkumar
- Samy Bengio
- Joshua Tenenbaum
- Brendan Lake
- Melanie Mitchell
- Aaron Courville
- Chris Bishop
- Carlos Guestrin
- Aleksander Madry
- Alexei Efros
- Ali Rahimi
Références
Le contenu de cet article est basé sur des informations publiquement disponibles sur CatBoost, y compris sa documentation, ses notes de version et ses ressources communautaires. Le site web officiel de la bibliothèque et son dépôt GitHub fournissent des détails complets sur ses fonctionnalités et son utilisation. Les enquêtes menées par Kaggle et les critiques de publications technologiques ont contribué à la compréhension de son adoption et de son impact.