Câu trả lời:
Bạn có thể thử xây dựng nhiều mô hình xgboost, với một số trong số chúng bị giới hạn ở dữ liệu gần đây hơn, sau đó cân nhắc các kết quả đó với nhau. Một ý tưởng khác là làm cho một số liệu đánh giá tùy chỉnh xử phạt các điểm gần đây nặng hơn, điều này sẽ khiến chúng quan trọng hơn.
Chỉ cần thêm trọng lượng dựa trên nhãn thời gian của bạn vào xgb.DMatrix. Ví dụ sau được viết bằng R nhưng nguyên tắc tương tự áp dụng cho xgboost trên Python hoặc 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()
, mặc dù nó không được mô tả nhiều
Trên Python, bạn có một trình bao bọc scikit-learn, vì vậy bạn có thể viết như thế này:
import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)
Thêm thông tin bạn có thể nhận được từ đây: http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit
xgb.XGBClassifier()
dòng mã thứ hai nhưng stackexchange không cho phép chỉnh sửa dưới sáu ký tự ...