Une variation plus efficace du cadre de renforcement du gradient qui inclut à la fois un solveur de modèle linéaire et des méthodes d'apprentissage des arbres est appelée augmentation du gradient extrême (XGBOost). Il est développé sur l'algorithme de boosting de gradient, qui produit un ensemble de modèles de prédiction faibles, souvent des arbres de décision, comme modèle de prédiction. Les compétitions pour l'apprentissage automatique sont souvent compatibles. Il est crucial pour comprendre les causes et les mécanismes derrière le fonctionnement réussi de cet algorithme. Nous apprendrons les arbres de décision, le boost de gradient, XGBoost et sa mise en œuvre dans cet article.
Que sont les arbres de décision?
Un algorithme informatique appelé algorithme d'arbre de décision crée une arborescence de décision à partir d'un ensemble de données fourni. L'ensemble de données aura des attributs, parfois appelés caractéristiques ou caractéristiques, et un attribut de classe. La cible et les résultats sont d'autres mots pour les caractéristiques de classe. Cette caractéristique est ce que nous espérons anticiper. L'algorithme d'arbre de décision crée un modèle d'arbre de décision. Un nœud racine, des nœuds de feuilles et des bords constituent le modèle d'arbre de décision. L'algorithme d'arbre de décision est récursif, ce qui signifie qu'il s'appelle à nouveau et continue de traiter les données jusqu'à ce qu'une condition d'arrêt soit satisfaite.
Exemple d'arbre de décision de Wikipedia
Qu'est-ce que le dégradé stimulation?
Pour les problèmes de régression et de classification, l'augmentation du gradient est une technique d'apprentissage automatique qui génère un modèle sous la forme d'un groupe de modèles de prédiction faibles, souvent des arbres de décision. Semblable à d'autres techniques de stimulation, il construit le modèle en étapes, mais il les généralise en permettant l'optimisation de toute fonction de perte. Trois processus essentiels sont impliqués dans le renforcement du gradient:
- L'optimisation d'une fonction de perte est la première étape qui doit être franchie. Une fonction de perte différente est requise. La façon dont un modèle d'apprentissage automatique s'adapte aux données d'un phénomène particulier est déterminée par sa fonction de perte.
- L'utilisation d'un apprenant faible est la deuxième étape. Un arbre de décision sert de faible apprenant dans les boosters de gradient. Les arbres de régression qui produisent des valeurs réelles pour les divisions et dont la sortie peut être additionnée est spécifiquement utilisée, permettant l'ajout de sortie de modèles successifs pour corriger les résidus dans les prédictions de l'itération antérieure.
- La troisième étape consiste à ajouter beaucoup d'apprenants faibles. Un par un, des arbres de décision sont ajoutés. Lors de l'ajout d'arbres, une approche de descente de gradient est utilisée pour réduire la perte. La composante dégradé des boosters de gradient est que. Dans l'apprentissage automatique, l'optimisation de descente de gradient est fréquemment utilisée pour identifier les paramètres connectés à un seul modèle qui améliore une fonction de perte particulière.
Qu'est-ce que xgboost?
Un module Python pour effectuer une augmentation du gradient est appelé xgboost (augmentation du gradient extrême). Les arbres de décision boostés par le gradient servent de fondation. Il s'agit d'un algorithme de renforcement qui augmente la robustesse et la précision du modèle dans diverses plates-formes compétitives comme Kaggle. Les meilleurs algorithmes pour les données structurés ou tabulaires de petite à moyenne taille sont basés sur des arbres de décision. La construction du modèle à l'aide de xgboost est rapide et efficace.
Où pouvons-nous utiliser xgboost?
- En cas de grand nombre d'observations dans les données de formation.
- Le nombre de fonctionnalités est inférieur au nombre d'observations.
- Lorsque la métrique des performances du modèle est en considération.
Implémentation dans Sklearn
# Importation de bibliothèques requises
de Sklearn.Les ensembles de données importent make_classification
de Sklearn.Model_Selection Import Train_test_split
importer xgboost
# Création de l'ensemble de données
X, y = make_classification (n_sample = 1000, n_features = 5, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Imprimer («Les fonctionnalités sont», x [: 20])
imprimer («les étiquettes sont», y [: 20])
# diviser les données en train et tester
X_train, x_test, y_train, y_test = Train_test_split (x, y, test_size = 0.2, random_state = 0)
# Création d'une instance xgboost
xgb_classifier = xgboost.XgbClassifier ()
# ajuster le modèle sur les données de train
xgb_classifier.fit (x_train, y_train)
# faire les prédictions
prédictions = xgb_classifier.prédire (x_test)
# imprimer 20 prédictions
imprimer («les prédictions sont», les prédictions [: 20])
Sortir
Les fonctionnalités sont [[-1.66853167 -1.29901346 0.2746472 -0.60362044 0.70885958]
[-2.9728827 -1.08878294 0.42281857 -3.11685659 0.64445203]
[-0.59614125 -1.37007001 -1.91374267 0.66356158 -0.1540724]
[-1.06894674 -1.17505738 1.19361168 -0.09816121 -0.88661426]
[-1.30526888 -0.96592566 -0.14735366 1.05980629 0.02624662]
[-2.18261832 -0.97011387 -0.11433516 0.74355352 0.21035937]
[-1.24797892 -1.13094525 -0.00592741 1.36606007 1.55511403]
[-1.35308792 -1.06633681 0.61332623 -0.28595915 1.49691099]
[-1.13449871 -1.27403448 1.18311956 0.71889717 -1.21607658]
[-0.38457445 -1.08840346 0.1406719 -0.74367217 -0.15901225]
[-1.0106506 -0.52017071 0.24005693 0.10015941 -0.47517511]
[-0.58310155 -1.18236446 1.27295375 -1.69613127 0.73018353]
[-0.29760388 -1.45995253 -1.85748327 0.38259814 -0.88690433]
[-0.86057581 -1.01530275 0.87830376 0.08645252 0.24770638]
[-2.47091771 -1.21696663 -1.01827933 -0.65457013 0.20721739]
[-1.33090082 -1.01316175 0.58356993 2.92909624 0.22285832]
[0.74840002 -0.91748674 0.97603753 -1.55693393 -1.32989186]
[-1.05483466 -0.9320408 -0.35549477 -1.1974277 1.48639925]
[-2.19888276 -1.17327072 -0.41021869 1.38218189 1.48678247]
[-0.68305478 -0.94253787 0.04277972 0.50179975 -0.05609947]]
Les étiquettes sont [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Les prédictions sont [1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0]
Conclusion
Nous avons discuté de l'algorithme XgBoost dans l'apprentissage automatique. Ceci est une mise en œuvre de la technique de renforcement du gradient, qui est largement utilisée dans les compétitions aujourd'hui. Nous avons vu pourquoi cet algorithme fonctionne bien et ce qu'il utilise sous le capot. Enfin, nous avons également subi la mise en œuvre de Xgboost dans Python.