Answers:
只需将基于时间标签的权重添加到xgb.DMatrix。以下示例使用R编写,但相同的原理适用于Python或Julia上的xgboost。
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()
,尽管它不是很具描述性
在Python上,您有一个不错的scikit-learn包装器,因此您可以这样编写:
import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)
您可以从这里获得更多信息:http : //xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit
xgb.XGBClassifier()
在第二行代码中,但是stackexchange不允许少于6个字符的编辑...