5 votes

Le wrapper caret varImp pour XGBoost xgbTree utilise-t-il XGBoost Gain ?

Utilisation de XGBoost xgb.importance une matrice d'importance peut être imprimée, montrant les valeurs d'importance des variables pour la classification, mesurées par le Gain, la Couverture et la Fréquence. Le gain est l'indicateur recommandé de l'importance des variables. En utilisant le rééchantillonnage par caret (repeatedcv, number=10, repeats =5), une grille d'accord particulière, et le train method = "xgbTree" le caret varImp() montre l'estimation de l'importance de la caractéristique k-fold mise à l'échelle de 0-100%.

Ma question est de savoir si le caret varImp(xgbMod) La fonction wrapper utilise-t-elle le gain ou une combinaison de gain, de couverture et de fréquence ?

5voto

StupidWolf Points 34348

Une petite précision :

la fonction caret varImp() montre l'estimation de l'importance de la caractéristique k-fold de l'importance des caractéristiques, échelonnée de 0 à 100 %.

caret estime l'importance des caractéristiques à partir du modèle final ajusté, et non à partir des validations croisées. Les validations croisées vous indiquent les meilleurs hyper paramètres (par exemple gamma, etc.) avec lesquels ajuster le modèle.

C'est Gain, pas beaucoup de documentation, j'ai vérifié en utilisant un exemple :

library(caret)
data = MASS::Pima.tr
set.seed(111)
mdl = train(type ~ .,data=data,method="xgbTree",tuneLength=3,
trControl=trainControl(method="cv"))

Vous définissez scale=FALSE pour définir les valeurs brutes :

varImp(mdl,scale=FALSE)
xgbTree variable importance

      Overall
glu   0.37953
age   0.19184
ped   0.16418
bmi   0.13755
npreg 0.06450
skin  0.04526
bp    0.01713

Comparez avec xgb.importance :

xgboost::xgb.importance(mdl$finalModel$feature_names,model=mdl$finalModel)
   Feature       Gain      Cover Frequency
1:     glu 0.37953480 0.17966683      0.16
2:     age 0.19183994 0.17190387      0.17
3:     ped 0.16417775 0.26768973      0.28
4:     bmi 0.13755463 0.09755036      0.09
5:   npreg 0.06450183 0.10811269      0.11
6:    skin 0.04526090 0.11229235      0.12
7:      bp 0.01713014 0.06278416      0.07

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X