Tôi đã cố gắng mô hình hóa một biến phụ thuộc đếm với độ phơi sáng không đồng đều. Các glms cổ điển sẽ sử dụng log (phơi sáng) làm offset, cũng như gbm, nhưng xgboost không cho phép offset cho đến bây giờ ...
Cố gắng tìm một nhược điểm của ví dụ này trong giá trị chéo ( Trường hợp bù đi trong hồi quy nhị thức Poisson / âm? ) Đề nghị tôi mô hình tần số (số thực) thay vì tính trọng số theo Phơi sáng.
Tôi đã cố gắng thực hiện một số mã xgboost để áp dụng cùng một phương pháp trên dữ liệu của mình nhưng tôi đã thất bại .... Dưới đây là mã tôi đặt ra:
library(MASS)
data(Insurance)
library(xgboost)
options(contrasts=c("contr.treatment","contr.treatment")) #fissa i
Insurance$freq<-with(Insurance, Claims/Holders )
library(caret)
temp<-dplyr::select(Insurance,District, Group, Age,freq)
temp2= dummyVars(freq ~ ., data = temp, fullRank = TRUE) %>% predict(temp)
xgbMatrix <- xgb.DMatrix(as.matrix(temp2),
label = Insurance$freq,
weight = Insurance$Holders)
bst = xgboost(data=xgbMatrix, label = Insurance$freq, objective='count:poisson',nrounds=5)
#In xgb.get.DMatrix(data, label) : xgboost: label will be ignored.
#strange warning
Insurance$predFreq<-predict(bst, xgbMatrix)
with(Insurance, sum(Claims)) #3151
with(Insurance, sum(predFreq*Holders)) #7127 fails
Ai có thể giúp đỡ? Ngoài ra, tôi đã tự hỏi liệu có thể chạy tất cả bằng cách sử dụng xe lửa ...