R语言xgboost自定义目标函数
【摘要】R语言xgboost自定义目标函数要自定义xgboost的目标函数,有两种方式 自定义目标函数(objective) 自定义评价函数(feval)。如果是自定义目
R语言xgboost自定义目标函数
要自定义xgboost的目标函数,有两种方式
自定义目标函数(objective)
自定义评价函数(feval)。
如果是自定义目标函数你需要求解该目标函数的梯度以及二阶梯度。
例子:自定义的objective
logregobj <- function(preds, dtrain) {
labels <- getinfo(dtrain, "label")
preds <- 1/(1 + exp(-preds))
grad <- preds - labels
hess <- preds * (1 - preds)
return(list(grad = grad, hess = hess))
}
而另一个则是自定义评价函数,参数:feval 。它的作用并不是用来训练,仅仅是用来评价,比如说,你可以使用logloss作为目标函数来训练,但是使用ks评分来评价,你可以根据这个评价来设计early stopping,或者调参。
例子:自定义的feval
evalerror <- function(preds, dtrain) {
labels <- getinfo(dtrain, "label")
err <- as.numeric(sum(labels != (preds > 0)))/length(labels)
return(list(metric = "error", value = err))
}
param <- list(max_depth=2, eta=1, nthread = 2, silent=1,objective=logregobj, eval_metric=evalerror)
bst <- xgb.train(param, dtrain, num_round, watchlist)
一般我推荐使用第二种方法,也就是自定义feval的方法,不建议使用自定义 objective,因为首先,有的评分你根本没法求梯度,然后自己写的目标函数难免没有bug,有可能效果不是很好。
就业培训申请领取
环球青藤
官方QQ群扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群
刷题看课 APP下载
免费直播 一键购课
代报名等人工服务
- 1 传统数据和大数据的区别
- 2 数据分析的8种方法都是哪些?
- 3 3大常用的数据分析工具是什么?
- 4 数据分析的具体流程是什么?
- 5 excel中的运算符
- 6 数据分析的作用有哪些?
- 7 电子商务需要分析哪些数据?
- 8 数据分析包括哪些内容?
- 9 rdd是什么?
- 10 数据分析的基本步骤