小编Pau*_*ulG的帖子

为什么使用伪 Huber 损失训练 Xgboost 模型会返回恒定的测试指标?

我正在尝试使用本机伪 Huber loss 来拟合 xgboost 模型reg:pseudohubererror。然而,它似乎不起作用,因为训练和测试错误都没有改善。它与 一起工作得很好reg:squarederror。我缺少什么?

代码:

library(xgboost)
n = 1000
X = cbind(runif(n,10,20), runif(n,0,10))
y = X %*% c(2,3) + rnorm(n,0,1)

train = xgb.DMatrix(data  = X[-n,],
                    label = y[-n])

test = xgb.DMatrix(data   = t(as.matrix(X[n,])),
                   label = y[n]) 

watchlist = list(train = train, test = test)

xbg_test = xgb.train(data = train, objective = "reg:pseudohubererror", eval_metric = "mae", watchlist = watchlist, gamma = 1, eta = 0.01, nrounds = 10000, early_stopping_rounds = 100)
Run Code Online (Sandbox Code Playgroud)

结果:

[1] train-mae:44.372692 …
Run Code Online (Sandbox Code Playgroud)

r xgboost

5
推荐指数
1
解决办法
3577
查看次数

标签 统计

r ×1

xgboost ×1