xgboost: coi trọng hơn các mẫu gần đây


22

Có cách nào để thêm tầm quan trọng vào các điểm gần đây hơn khi phân tích dữ liệu với xgboost không?

Câu trả lời:


9

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.


4
OP đơn giản có thể đưa ra trọng lượng mẫu cao hơn cho các quan sát gần đây hơn. Hầu hết các gói cho phép điều này, cũng như xgboost.
Ricardo Cruz

30

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)

Cảm ơn câu trả lời của bạn - thật sự hữu ích khi xem một ví dụ được mã hóa. Làm thế nào để độ lớn của các hệ số hàm trọng số ảnh hưởng đến mô hình? Tôi đã xem qua các tài liệu xgboost, nhưng tôi không thể tìm thấy thông tin về tầm quan trọng của các giá trị số này.
kilojoules

không biết mẹo này, hay đấy. có một mẩu tin nhỏ trong tài liệu xgboost theo chức năng setinfo(), mặc dù nó không được mô tả nhiều
TBSRounder

12

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


Mong muốn cho R caret đã được xây dựng trong quá ..
pauljeba

1
đó phải là 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ự ...
Andre Holzner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.