Avantages et inconvénients des méthodes à gradient. Exercice sur la rotation de features avant l'utilisation d'une random forest.
from jyquickhelper import add_notebook_menu
add_notebook_menu()
La bible que tout le monde recommande : The Elements of Statistical Learning, Trevor Hastie, Robert Tibshirani, Jerome Friedman
On passe 90% du temps à créer de nouvelles features, 10% restant à améliorer les paramètres du modèle : Travailler les features ou le modèle.
Le boosting est une technique de machine learning qui consiste à sur-pondérer les erreurs. Pour un algorithme d'apprentissage itératif, cela consiste à donner plus de poids à l'itération n aux erreurs produites par l'itération n-1. L'algorithme le plus connu est AdaBoost. Le gradient boosting est l'application de ce concept à un modèle et une fonction d'erreur dérivable.
Un weak learner est un modèle de machine learning aux performances faibles. Typiquement, un noeud d'un arbre de décision est un weak learner. Le boosting est une façon de construire un strong learner à partir d'un assemblage de weak learners.
Les réseaux de neurones s'apprennent avec des méthodes de d'optimisation basées sur le gradient. Elles n'aiment pas :
Ce qui ne les dérange pas :
Ce qu'elle n'aime pas :
Random Rotation Ensembles l'article étudie le gain obtenu en utilisant des rotations aléatoires de l'ensemble des caractéristiques. Le gain est significatif. Appliqué cette méthode sur une problème de classification binaire.
XGBoost est une librairie de machine learning connue pour avoir gagné de nombreuses compétitions. Extrait de XGBoost A Scalable Tree Boosting System :
from pyquickhelper.helpgen import NbImage
NbImage("xgboost.png")
Plusieurs améliorations ont été implémentées pour rendre l'apprentissage rapide et capable de gérer de gros volumes de données :
Comparer les random forest de XGBoost, LightGBM, scikit-learn sur différents jeux de données synthétiques :
Faire de même pour une classification multi-classes et une régression.