Existe uma maneira de adicionar mais importância aos pontos mais recentes ao analisar dados com o xgboost?
Existe uma maneira de adicionar mais importância aos pontos mais recentes ao analisar dados com o xgboost?
Respostas:
Você pode tentar criar vários modelos xgboost, com alguns deles limitados a dados mais recentes e, em seguida, ponderar esses resultados juntos. Outra idéia seria criar uma métrica de avaliação personalizada que penalize mais fortemente os pontos recentes, o que lhes daria mais importância.
Basta adicionar pesos com base nos rótulos de tempo ao seu xgb.DMatrix. O exemplo a seguir está escrito em R, mas o mesmo princípio se aplica ao xgboost no 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)
setinfo()
, embora a sua não muito descritivo
No Python, você tem um bom wrapper scikit-learn, para escrever assim:
import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)
Você pode obter mais informações com isso: http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit
xgb.XGBClassifier()
na segunda linha de código, mas Stackexchange não permite edições de menos de seis caracteres ...