Pregunta

Es allí una manera de agregar más importancia a los puntos que son más recientes que, al analizar los datos con xgboost?

¿Fue útil?

Solución

Puede intentar construir múltiples modelos XGBOost, y algunos de ellos se limitan a datos más recientes y luego ponderan esos resultados. Otra idea sería hacer una métrica de evaluación personalizada que penalice los puntos recientes más fuertemente, lo que les daría más importancia.

Otros consejos

Sólo añadir pesas en función de su tiempo de etiquetas para su xgb.DMatrix.El siguiente ejemplo está escrito en R pero el mismo principio se aplica a xgboost en Python o 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 tienes un bonito envoltorio de Scikit-Learn, para que puedas escribir así:

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

Más información que puede recibir de esto:http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.xgbclassifier.fit

Licenciado bajo: CC-BY-SA con atribución
scroll top