J'ai essayé de comprendre le renforcement du gradient en lisant divers blogs et sites Web et en essayant de trouver ma réponse en parcourant par exemple le code source XGBoost. Cependant, je n'arrive pas à trouver une explication compréhensible de la façon dont les algorithmes de renforcement de gradient produisent des estimations de probabilité. Alors, comment calculent-ils les probabilités?
12
Réponses:
XGBoost pour la classification est un modèle qui combine les principes des arbres de décision et de la régression logistique.
La fonction de régression logistique calcule des probabilités linéaires sur l'échelle logit:
Contrairement à la régression logistique, les «caractéristiques»X sont construits comme les nœuds terminaux d'un ensemble d'arbres de décision - donc chaque ligne de X recueille les feuilles terminales pour chaque échantillon; la rangée est unT vectoriel binaire à haute résolution, pour T le nombre d'arbres. (Chaque arbre XGBoost est généré selon un algorithme particulier, mais ce n'est pas pertinent ici.)
Il y an colonnes dans X , une colonne pour chaque nœud terminal. Il n'y a pas d'expression pour le nombre total de nœuds terminaux, car le nombre de nœuds peut varier entre les arbres (et le fait généralement, selon mon expérience).
Chaque feuille de l'arbre a un «poids» associé. Ce poids est enregistré dansw . Pour être conforme àX , il y a n éléments dans w .
Ou, comme indiqué autrement, les log-odds pour un échantillon sont la somme des poids de ses feuilles terminales. La probabilité que l'échantillon appartienne à la classe 1 est la transformation logit inverse de la somme.
la source
X
ainsi qu'un ensemble unique de bêtas pour chaque échantillon / observation (i
)? En d'autres termes, pour chaque échantillon / observation pour lequel vous souhaitez calculer la probabilité d'appartenance à la classe 1, vous devez déterminer les valeurs uniques de laX
matrice et du vecteur bêta?