Qu'est-ce que l'algorithme XGBoost?

XGBoost ou Extreme Gradient boost est un algorithme d'apprentissage automatique qui est utilisé pour la mise en œuvre d'arbres de décision de renforcement de gradient. Pourquoi des arbres de décision? Lorsque nous parlons de données non structurées comme les images, les données textuelles non structurées, etc., les modèles ANN (réseau de neurones artificiels) semblent résider au sommet lorsque nous essayons de prédire. Alors que lorsque nous parlons de données structurées / semi-structurées, les arbres de décision sont actuellement les meilleurs. XGBoost a été essentiellement conçu pour améliorer considérablement la vitesse et les performances des modèles d'apprentissage automatique et il a très bien fonctionné.

Fonctionnement de l'algorithme XGBoost

Le XGBoost possède un algorithme d'apprentissage d'arbre ainsi que l'apprentissage du modèle linéaire, et à cause de cela, il est capable de faire un calcul parallèle sur la seule machine.

Cela rend l'algorithme XGBoost 10 fois plus rapide que n'importe lequel des algorithmes de renforcement de gradient existants.

Le XGBoost et les GBM (c'est-à-dire les Gradient Boosting Machines) utilisent des méthodes d'arbre en utilisant l'architecture de descente de gradient.

Le domaine où XGBoost laisse les autres GBM derrière est celui de l'optimisation du système et des améliorations par rapport aux algorithmes.

Voyons-les en détail:

Optimisation du système:

1. Élagage d'arbre - L'algorithme XGBoost utilise l'approche en profondeur d'abord contrairement au critère d'arrêt pour le fractionnement d'arbre utilisé par GBMS qui est de nature gourmande et il dépend également du critère de perte négative. Le XGBoost utilise à la place la fonction / paramètre de profondeur maximale et, par conséquent, il élague l'arbre vers l'arrière.

2. Parallélisation - Le processus de construction d'arbre séquentiel se fait en utilisant l'implémentation parallélisée dans l'algorithme XGBoost. Ceci est rendu possible grâce aux boucles externes et internes qui sont interchangeables. La boucle externe répertorie les nœuds feuilles d'un arbre tandis que la boucle interne calcule les entités. De plus, pour que la boucle externe démarre, la boucle interne doit être terminée. Ce processus de commutation améliore les performances de l'algorithme.

3. Optimisation matérielle - L'optimisation matérielle a également été prise en compte lors de la conception de l'algorithme XGBoost. Des tampons internes sont alloués à chacun des threads pour stocker les statistiques de gradient.

Améliorations algorithmiques:

  • Sensibilisation à la rareté - XGBoost est connu pour gérer très efficacement tous les différents types de modèles de rareté. Cet algorithme apprend la valeur manquante du nid en voyant la perte d'entraînement.
  • Régularisation - Afin d'éviter le sur-ajustement, il corrige des modèles plus complexes en mettant en œuvre à la fois la régularisation LASSO (également appelée L1) et Ridge (également appelée L2).
  • Validation croisée - L'algorithme XGBoost possède des fonctionnalités de validation croisée intégrées qui sont mises en œuvre à chaque itération de la création du modèle. Cela évite d'avoir à calculer le nombre d'itérations de boost nécessaires.
  • Esquisse de quantile pondérée distribuée - L'algorithme XGBoost utilise l'esquisse de quantile pondéré distribué pour obtenir le nombre optimal de points de partage parmi les ensembles de données pondérés

Caractéristiques de XGBoost

Bien que XGBoost ait été conçu pour améliorer considérablement la vitesse et les performances des modèles d'apprentissage automatique, il offre également un bon nombre de fonctionnalités avancées.

A) Caractéristiques du modèle

Les fonctionnalités telles que celle d'un sci-kit apprennent la régularisation et l'implémentation du langage R sont prises en charge par XGBoost. Les principales méthodes d'accentuation du gradient prises en charge sont les suivantes:

  • Amplification du gradient stochastique - Les niveaux de colonne, de ligne et de colonne par division peuvent être sous-échantillonnés.
  • Accentuation du dégradé
  • Boosting de dégradé régularisé - Le XGBoost corrige des modèles plus complexes en implémentant à la fois le LASSO (également appelé L1) ainsi que la régularisation Ridge (également appelée L2).

B) Caractéristiques du système

Les caractéristiques du système comprennent:

1. Calcul distribué - Cette fonctionnalité est utilisée pour la formation de très grands modèles en implémentant un cluster de machines.

2. Parallélisation - Pendant la formation, tous les cœurs de CPU sont utilisés pour la parallélisation de la construction de l'arborescence

3. Optimisation du cache - Les algorithmes et les structures de données sont mis en cache afin de tirer le meilleur parti du matériel.

4. Hors du Core Computing - Pour les jeux de données qui ne rentrent pas dans la mémoire, le XGBoost implique le core computing.

C) Caractéristiques de l'algorithme

L'un des principaux objectifs de l'algorithme XGBoost était de tirer le meilleur parti de toutes les ressources disponibles. Certaines des principales caractéristiques algorithmiques du XGBoost sont:

  • Structure de bloc - Cette fonctionnalité est utilisée pour prendre en charge la construction d'arbres en parallélisation.
  • Sparse Aware - Lorsque les valeurs manquent dans le jeu de données, cette fonctionnalité s'en occupera automatiquement.
  • Formation continue - Lorsque le modèle est prêt avec les nouvelles données, le modèle peut être encore amélioré en utilisant cette fonction.

Pourquoi utiliser XGBoost?

Le but principal que XGBoost sert est:

  • Rapidité d'exécution
  • Performance du modèle

Laissez-nous discuter les deux.

1. Vitesse d'exécution

Lorsque nous comparons XGBoost avec d'autres algorithmes de renforcement de gradient, XGBoost s'avère être très rapide, environ 10 fois plus rapide que les autres implémentations.

Szilard Pafka a réalisé quelques expériences qui visaient à évaluer la vitesse d'exécution de différents algorithmes d'implémentation de forêts aléatoires. Voici un aperçu des résultats de l'expérience:

Il s'est avéré que XGBoost était le plus rapide. Plus de lecture peut être trouvée ici

2. Performance du modèle

Lorsque nous parlons de données non structurées comme les images, les données textuelles non structurées, etc., les modèles ANN (réseau de neurones artificiels) semblent résider au sommet lorsque nous essayons de prédire. Alors que lorsque nous parlons de données structurées / semi-structurées, les arbres de décision sont actuellement les meilleurs et lorsqu'ils sont mis en œuvre à l'aide de XGBoost, aucun autre algorithme de renforcement ne peut battre cela pour l'instant.

L'algorithme utilisé par XGboost

L'algorithme XGBoost utilise l'algorithme d'arbre de décision de renforcement du gradient.

La méthode de renforcement du gradient crée de nouveaux modèles qui ont pour tâche de prédire les erreurs et les résidus de tous les modèles précédents, qui, à leur tour, sont additionnés et ensuite la prédiction finale est faite.

Conclusion: algorithme XGBoost

Dans cet algorithme XGBoost, nous avons découvert l'algorithme XGBoost utilisé pour l'apprentissage automatique. Ensuite, nous avons vu le fonctionnement de cet algorithme, ses principales caractéristiques et pourquoi il est un choix parfait pour implémenter des arbres de décision de renforcement de gradient.

Articles recommandés

Cela a été un guide pour l'algorithme XGBoost. Ici, nous avons discuté de son concept, de ses fonctionnalités, de son utilisation pour l'apprentissage automatique, du fonctionnement d'un algorithme dans XGBoost. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. PNL en Python
  2. Algorithme de traçage de rayons
  3. Algorithme de signature numérique
  4. Questions d'entretiens chez Algorithm
  5. Cryptographie à signature numérique

Catégorie: