回答:
複数の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)
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()
... 2行目のコードではなく、stackexchangeは6文字未満の編集を許可していません