Domanda

C'è un modo per aggiungere più importanza ai punti che sono più recente quando si analizzano i dati con xgboost?

È stato utile?

Soluzione

Si potrebbe provare a costruire più modelli xgboost, con alcuni di loro di essere limitato ai dati più recenti, quindi la ponderazione questi risultati insieme. Un'altra idea sarebbe quella di fare una metrica di valutazione su misura che penalizza i punti recenti più pesantemente che darebbe loro più importanza.

Altri suggerimenti

pesi basta aggiungere in base alle etichette tempo al vostro xgb.DMatrix. L'esempio che segue è scritto in R ma lo stesso principio vale per xgboost su 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)

In Python si dispone di un bel scikit-learn involucro, in modo da poter scrivere proprio come questo:

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

Maggiori informazioni si possono ricevere da questo: http://xgboost.readthedocs.io/en/latest /python/python_api.html#xgboost.XGBClassifier.fit

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top