J'essaie de comprendre comment fonctionne XGBoost. Je comprends déjà comment les arbres boostés par le gradient fonctionnent sur Python sklearn. Ce qui n'est pas clair pour moi, c'est si XGBoost fonctionne de la même manière, mais plus rapidement, ou s'il existe des différences fondamentales entre celui-ci et l'implémentation de python.
Quand j'ai lu cet article
http://learningsys.org/papers/LearningSys_2015_paper_32.pdf
Il me semble que le résultat final provenant de XGboost est le même que dans l'implémentation Python, mais la principale différence est de savoir comment XGboost trouve la meilleure division à faire dans chaque arbre de régression.
Fondamentalement, XGBoost donne le même résultat, mais il est plus rapide.
Est-ce correct ou y a-t-il autre chose qui me manque?
la source
n_jobs
paramètre interface disponible; le traitement parallèle n'est pas possible en interne avec l'implémentation de l'algorithme par sklearn.Contrairement au renforcement du gradient de Sklearn, Xgboost effectue également la régularisation de l'arbre pour éviter le sur-ajustement et traite également les valeurs manquantes de manière efficace. Le lien suivant peut être utile pour apprendre précisément xgboost https://www.youtube.com/watch?v=Vly8xGnNiWs
la source
XGboost est la mise en œuvre du GBDT avec randmisation (il utilise l'échantillonnage des colonnes et l'échantillonnage des lignes) .L'échantillonnage des lignes est possible en n'utilisant pas toutes les données d'apprentissage pour chaque modèle de base du GBDT. Au lieu d'utiliser toutes les données d'apprentissage pour chaque modèle de base, nous échantillonnons un sous-ensemble de lignes et utilisons uniquement ces lignes de données pour créer chacun des modèles de base. Cela garantit qu'il y a moins de risques de sur-ajustement, ce qui est un problème majeur avec le GBDT simple que XGBoost essaie de résoudre en utilisant cette randomisation.
la source