Prédire ce qui va se passer. Tenter de déduire des diagnostics... Nous avons là des préoccupations majeures de très nombreuses activités. Diverses approches ont été tentées afin que de telles objectifs puissent être accomplis. L’une des techniques mises à profit à cet effet est l’apprentissage automatique et Xgboost est un fleuron du lot.
XGBoost est une technique d’apprentissage automatique qui exploite des arbres de décision en vue d’opérer des prédictions. Pour faire simple, nous pouvons dire que XGBoost élabore une suite d’arbres de décision et que chacun de ces arbres s’évertue à corriger les inexactitudes ou imperfections du précédent. Ainsi, à chaque étape , les prédictions deviennent de plus en plus précises.
D’un point de vue plus pratique, XGBoost répond à des questions en se basant sur des données historiques (ou données d’entraînement) en vue de prédire les réponses à des données plus fraîches.
À quels types de problèmes s’applique XGBoost ?
Un tel apprentissage automatique vise à résoudre des problèmes fort concrets tels que les suivants :
- Le message que j’ai reçu est-il un spam ou s’agit-il d’un courriel légitime ?
- Combien d’exemplaires de cet article devraient être vendues le mois prochain ?
- Dans quel ordre divers produits devraient-ils être recommandés à un utilisateur particulier ?
- Quelle est la probabilité qu’un visiteur d’une page Web clique sur une publicité particulière ?
- Etc.
Qui a créé XGBoost ?
XGBoost est né en 2014 sous l’impulsion de Tianqi Chen, un chercheur en informatique, alors étudiant à l’Université de Washington.
Bien des outils d’apprentissage automatique existaient déjà, tels que Random Forest, Adaboost ou k-NN. Ces algorithmes lui semblaient efficaces et pertinents, mais insuffisamment rapides et performants. Tian Cheng a donc veillé à rendre XGBoost non seulement efficace mais aussi extrêmement rapide, grâce à diverses méthodes d’optimisation.
Cheng Tianqi Chen était par ailleurs motivé par les compétitions d’apprentissage automatique, en particulier celles organisées sur le site Kaggle.com.
XGBoost est rapidement devenu l’une des bibliothèques d’apprentissage automatique les plus populaires du domaine du fait de performances exceptionnelles, de son adaptabilité à différents types de tâches et la présence de nombreuses options pour un ajustement fin.
Comment fonctionne Xgboost ?
Voyons ici comment XGBoost fonctionne, d’une manière simplifiée:
- XGBoost effectue une prédiction simple, par exemple à partir d’une moyenne de diverses observations passées dans un domaine particulier
- XGBoost évalue ensuite les erreurs (résidus) entre les prédictions et les valeurs réelles.
- Un arbre de décision est construit afin de prédire ces erreurs.
- Les prédictions initiales sont mises à jour à partir des prédictions de l’arbre.
- Les étapes 2 à 4 sont répétées plusieurs fois, chaque nouvel arbre se concentrant sur les erreurs issues se la somme des arbres précédents.
- Une fois tous les arbres élaborés, les prédictions de chacun sont sommées en vue d’obtenir une prédiction finale.
Il est bon de savoir aussi que Cheng a introduit des techniques aidant à éviter le surapprentissage. Celui-ci a tendance à se produire lorsqu’un modèle intègre à l’excès les anomalies ou variations, au lieu de comprendre les tendances générales du modèle.
Dans la pratique
Lorsque l’on utilise XGBoost dans un environnement de programmation (tel que Python), il nous faut :
- Charger les données.
- Définir des paramètres propres à XGBoost (comme le nombre d’arbres à élaborer ).
- Entrainer le modèle XGBoost sur nos données.
- Utiliser ce modèle pour opérer des prédictions sur de nouvelles données.
Un exemple concret
Une banque souhaite prédire au mieux si un demandeur de prêt sera en mesure de rembourser son prêt.
Avec XGBoost, elle peut partir de l’historique des demandeurs de prêts et prendre en compte des informations telles que :
- Revenu annuel
- Historique de crédit
- Statut matrimonial
- Depuis combien de temps la personne travaille
- Les caractéristiques du prêt demandé
- Est-ce que le prêt a été remboursé sans souci ?
- etc.
À partir de telles données , il va être possible d’évaluer avec XGBoost si le demandeur actuel a de bonnes chances de rembourser son emprunt.
À l’œuvre dans une multitude d’industries
XGBoost est utilisé dans de nombreuses industries sur des cas très concrets. En voici quelques exemples.
Finance
Xgboost aide à identifier des transactions suspectes, par exemple une fraude à la carte de crédit.
Médical
XGBoost peut aider à diagnostiquer des maladies sur la base de symptômes du patient ou d’analyses médicales. Un hôpital sera intéressé à la prédire les réadmissions de patients.
E-commerce
L’outil peut être utilisé pour prédire quels articles un utilisateur serait susceptible d’acheter, en fonction de son historique d’achat.
Services en ligne
Agriculture
Cet outil d’apprentissage automatique peut aider à détecter des maladies des plantes et prévoir le rendement d’une culture.
Immobilier
Aide à l’estimation du prix de vente d’un bien immobilier selon ses diverses caractéristiques.
Énergie
Prévision de la demande en électricité et autres ressources énergétiques.
Publicité en ligne
Quelles sont les chances pour qu’un utilisateur donné clique sur une publicité en ligne ?
Transport
Quelle peut être la demande pour certains véhicules à divers moments ou lieux ?
Sciences et recherche
Analyse de sentiments dans divers types de textes.
Une solution robuste
Ces diverses industries recourent à XGBoost du fait de sa capacité à gérer des ensembles de données volumineux et de ses hautes performances, mais aussi sa capacité à bien fonctionner même si certaines informations sont absentes ou manquantes, ce qui arrive souvent dans la vie réelle.