Jawaban:
Anda dapat mencoba membuat beberapa model xgboost, dengan beberapa di antaranya terbatas pada data yang lebih baru, kemudian menimbang hasilnya bersama-sama. Gagasan lain adalah membuat metrik evaluasi yang disesuaikan yang menghukum poin baru lebih berat yang akan memberi mereka lebih penting.
Cukup tambahkan bobot berdasarkan label waktu Anda ke xgb.DMatrix Anda. Contoh berikut ditulis dalam R tetapi prinsip yang sama berlaku untuk xgboost di Python atau 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()
, meskipun tidak terlalu deskriptif
Di Python Anda memiliki pembungkus scikit-learn yang bagus, sehingga Anda bisa menulis seperti ini:
import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)
Informasi lebih lanjut dapat Anda terima dari ini: http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit
xgb.XGBClassifier()
di baris kedua kode tetapi stackexchange tidak mengizinkan pengeditan kurang dari enam karakter ...