Stimuler
Dans l'apprentissage automatique,Boosting est un méta-algorithme intégré principalement utilisé pour réduire les biais et la variance dans l'apprentissage supervisé, ainsi qu'une série d'algorithmes d'apprentissage automatique qui convertissent les apprenants faibles en apprenants forts. Le boosting est basé sur la question posée par Kearns et Valiant (1988, 1989) : « Un ensemble d’apprenants faibles peut-il créer un apprenant fort ? » Un apprenant faible est défini comme un classificateur qui n'est que légèrement corrélé à la vraie classification (il peut étiqueter les exemples mieux que des suppositions aléatoires). En revanche, un apprenant fort est un classificateur qui est arbitrairement bien corrélé avec la vraie classification. Lors du boosting, des échantillons de données aléatoires sont sélectionnés, adaptés aux modèles, puis formés séquentiellement, c'est-à-dire que chaque modèle tente de compenser les faiblesses de son prédécesseur. À chaque itération, les règles faibles de chaque classificateur individuel sont combinées en une règle de prédiction forte.
Trois méthodes de boost
Différents algorithmes de boosting peuvent différer dans la manière dont ils créent et regroupent les apprenants faibles dans un processus séquentiel. Trois méthodes de levage populaires comprennent :
- Boosting adaptatif, également connu sous le nom d'AdaBoost :L'algorithme AdaBoost a été créé par Yoav Freund et Robert Schapire. Cette approche fonctionne de manière itérative, en découvrant les points de données mal classés et en ajustant leurs pondérations pour minimiser l’erreur d’apprentissage. Ce modèle est optimisé en continu de manière séquentielle jusqu'à ce que le prédicteur le plus fort soit produit.
- Amplification du gradient :S'appuyant sur les travaux de Leo Breiman, Jerome H. Friedman a développé le gradient boosting, qui fonctionne en ajoutant séquentiellement des prédicteurs à un ensemble, chaque prédicteur corrigeant les erreurs de son prédécesseur. Cependant, Gradient Boosting s'entraîne sur les résidus du prédicteur précédent au lieu de modifier les poids des points de données comme le fait AdaBoost. Le nom « gradient boosting » est utilisé car il combine l'algorithme de descente de gradient avec la méthode de boosting.
- Extreme Gradient Boosting, ou XGBoost : XGBoost est une implémentation de gradient boosting conçue pour la vitesse de calcul et l'échelle. XGBoost tire parti de plusieurs cœurs du processeur pour paralléliser l'apprentissage pendant la formation.
Stimuler Avantages
- Facile à mettre en œuvre :Le boosting peut être utilisé avec plusieurs options de réglage des hyperparamètres pour améliorer l'ajustement. L'algorithme de boosting dispose de routines intégrées pour gérer les données manquantes, aucun prétraitement des données n'est donc requis. En Python, la bibliothèque scikit-learn pour les méthodes d'ensemble (également connue sous le nom de sklearn.ensemble) facilite la mise en œuvre de méthodes de boosting populaires, notamment AdaBoost, XGBoost et autres.
- Réduire les biais :L'algorithme de boosting combine plusieurs apprenants faibles en séquence pour améliorer de manière itérative les observations. Cette approche permet de réduire le biais élevé généralement observé dans les modèles d’arbre de décision peu profonds et de régression logistique.
- Efficacité de calcul :Étant donné que l’algorithme de boosting sélectionne uniquement les fonctionnalités qui améliorent son pouvoir prédictif pendant la formation, il contribue à réduire la dimensionnalité et à améliorer l’efficacité du calcul.
Les défis du boosting
- Surapprentissage :Il existe une certaine controverse parmi diverses études (lien externe à ibm.com) quant à savoir si le boosting aide à réduire le surapprentissage ou l'exacerbe. Nous avons inclus cela dans le défi car il arrive que les prédictions ne parviennent pas à se généraliser à de nouveaux ensembles de données.
- Calcul intensif : La formation séquentielle dans la méthode de boosting est difficile à mettre à l’échelle. Étant donné que chaque variable imputée s'appuie sur sa prédécesseure, les modèles de boosting sont coûteux en termes de calcul, bien que XGBoost tente de résoudre les problèmes d'évolutivité qui surviennent dans d'autres types de boosting. Par rapport au bagging, les algorithmes de boosting peuvent être plus lents à former en raison du grand nombre de paramètres qui affectent également le comportement du modèle.
Références
【1】https://www.ibm.com/cn-zh/topics/boosting