是否有一种方法可以增加对使用XGBoost分析数据的最新点的更重要性?

有帮助吗?

解决方案

您可以尝试构建多个XGBoost模型,其中一些模型仅限于最新数据,然后将这些结果加权加权。另一个想法是制定一个定制的评估指标,以更严重地对最近的积分进行惩罚,这将使他们更加重要。

其他提示

只需根据您的时间标签添加权重到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)

在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

许可以下: CC-BY-SA归因
scroll top