Question

Est-il possible d'ajouter plus d'importance aux points qui sont plus récentes lors de l'analyse des données avec xgboost?

Était-ce utile?

La solution

Vous pouvez essayer de construire plusieurs modèles xgboost, avec certains d'entre eux étant limité à des données plus récentes, puis pondérer ces résultats ensemble. Une autre idée serait de faire une plus fortement métrique d'évaluation sur mesure qui pénalisent les points récents qui leur donnerait plus d'importance.

Autres conseils

Juste poids add en fonction de vos étiquettes de temps à votre xgb.DMatrix. L'exemple suivant est écrit dans R mais le même principe s'applique à xgboost sur Python ou Julia.

data <- data.frame(feature = rep(5, 5),
                   year = seq(2011, 2015), 
                   target = c(1, 0, 1, 0, 0))
weightsData <- 1 + (data$year - max(data$year)) * 5 * 0.01

#Now create the xgboost matrix with your data and weights
xgbMatrix <- xgb.DMatrix(as.matrix(data$feature), 
                         label = data$target, 
                         weight = weightsData)

En Python vous avez une belle enveloppe scikit-learn, de sorte que vous pouvez écrire comme ceci:

import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)

Plus d'informations vous pouvez recevoir ceci: http://xgboost.readthedocs.io/en/latest /python/python_api.html#xgboost.XGBClassifier.fit

Licencié sous: CC-BY-SA avec attribution
scroll top