XGBoost est une méthode d’entraînement machine supervisé pour la classification et la régression utilisée par l’outil Entraîner à l’aide d’AutoML. XGBoost signifie extreme gradient boosting. Cette méthode repose sur les arbres de décision et s’améliore à partir d’autres méthodes telles que la forêt aléatoire et l’optimisation de dégradé. Elle est efficace avec les jeux de données volumineux et complexes en faisant appel à diverses méthodes d’optimisation.
Pour ajuster un jeu de données d’entraînement avec XGBoost, une prévision initiale est effectuée. Les valeurs résiduelles sont calculées en fonction de la valeur prédite et des valeurs observées. Un arbre de décision est créé avec les valeurs résiduelles à l’aide d’un score de similarité pour les valeurs résiduelles. La similarité des données dans une feuille est calculée, ainsi que le gain de similarité dans le fractionnement ultérieur. Les gains sont comparés afin de déterminer une entité et un seuil pour un nœud. La valeur en sortie de chaque feuille est également calculée à l’aide des valeurs résiduelles. Pour la classification, les valeurs sont généralement calculées à l’aide du journal des chances et des probabilités. La sortie de l’arbre devient la nouvelle valeur résiduelle du jeu de données, qui est utilisé pour créer un autre arbre. Ce processus est répété un nombre de fois spécifié ou jusqu’à ce que les valeurs résiduelles cessent de diminuer. Chaque arbre suivant apprend des arbres précédents et ne reçoit pas de pondération égale, contrairement au fonctionnement de la méthode Forêt aléatoire.
Pour utiliser ce modèle dans la prévision, la sortie de chaque arbre multipliée par une vitesse d’apprentissage est ajoutée à la prévision initiale afin d’obtenir une valeur ou une classification finale.
XGBoost utilise les méthodes et les paramètres suivants pour optimiser l’algorithme et améliorer les résultats et les performances :
- Régularisation : un paramètre de régularisation (lambda) est utilisé pendant le calcul des scores de similarité pour réduire la sensibilité aux données individuelles et éviter le sur-ajustement.
- Élagage : un paramètre de complexité d’arbre (gamma) est sélectionné pour comparer les gains. La branche où le gain est inférieur à la valeur gamma est supprimée. Cela empêche le sur-ajustement en éliminant les branches inutiles et en réduisant la profondeur des arbres.
- Construction de quantile pondéré : au lieu de tester chaque valeur possible en tant que seuil de fractionnement des données, seuls les quantiles pondérés sont utilisés. La sélection des quantiles s’effectue à l’aide d’un algorithme de construction, qui estime une distribution sur plusieurs systèmes sur un réseau.
- Entraînement parallèle : cette méthode divise les données en blocs pouvant être utilisés en parallèle pour créer les arbres ou pour d’autres calculs.
- Recherche de fractionnement tenant compte de la rareté : XGBoost gère la rareté des données en essayant les deux sens dans un fractionnement et en recherchant une direction par défaut via le calcul du gain.
- Accès tenant compte du cache : cette méthode utilise la mémoire cache du système pour calculer les scores de similarité et les valeurs en sortie. La mémoire cache est une mémoire à accès plus rapide par rapport à la mémoire principale et améliore les performances globales du modèle.
- Blocs de calcul out-of-core : cette méthode fonctionne avec les jeux de données volumineux ne pouvant pas tenir dans le cache ou la mémoire principale et devant être conservés sur des disques durs. Le jeu de données est divisé en blocs et compressé. Il est plus rapide de décompresser les données dans la mémoire principale que de les lire à partir du disque dur. Une autre technique nommée sharding est utilisée lorsque les données doivent être conservées sur plusieurs disques durs.
Ressources supplémentaires
Chen Tianqi et Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 785–794.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?