小编Pet*_*wth的帖子

XGBoost - 具有不同曝光/偏移的泊松分布

我正在尝试使用XGBoost来模拟从不等长曝光时间段生成的数据的声明频率,但是无法使模型正确处理曝光.我通常会通过将log(曝光)设置为偏移量来实现此目的 - 您是否可以在XGBoost中执行此操作?

(这里发布了一个类似的问题:xgboost,偏移曝光?)

为了说明这个问题,下面的R代码使用以下字段生成一些数据:

  • x1,x2 - 因子(0或1)
  • 暴露 - 观察数据的政策期限
  • 频率 - 每单位曝光的平均索赔数
  • 声明 - 观察到的声明数量〜泊松(频率*暴露)

目标是使用x1和x2预测频率 - 真实模型是:如果x1 = x2 = 1则频率= 2,否则频率= 1.

曝光不能用于预测频率,因为在政策开始时不知道.我们可以使用它的唯一方法是:预期的索赔数量=频率*曝光率.

代码尝试使用XGBoost通过以下方式预测:

  1. 将曝光设置为模型矩阵中的权重
  2. 将日志(曝光)设置为偏移量

在这些下面,我已经展示了如何处理树(rpart)或gbm的情况.

set.seed(1)
size<-10000
d <- data.frame(
  x1 = sample(c(0,1),size,replace=T,prob=c(0.5,0.5)),
  x2 = sample(c(0,1),size,replace=T,prob=c(0.5,0.5)),
  exposure = runif(size, 1, 10)*0.3
)
d$frequency <- 2^(d$x1==1 & d$x2==1)
d$claims <- rpois(size, lambda = d$frequency * d$exposure)

#### Try to fit using XGBoost
require(xgboost)
param0 <- list(
  "objective"  = "count:poisson"
  , "eval_metric" = "logloss" …
Run Code Online (Sandbox Code Playgroud)

r poisson offset xgboost

7
推荐指数
1
解决办法
3916
查看次数

标签 统计

offset ×1

poisson ×1

r ×1

xgboost ×1