R xgboost中客观与客观的区别

R xgboost中客观与客观的区别,r,classification,xgboost,objective-function,evaluation-function,R,Classification,Xgboost,Objective Function,Evaluation Function,xgboost在R中的objective和feval之间有什么区别?我知道这是一件非常基本的事情,但我无法准确地定义它们/它们的目的 另外,在进行多类别分类时,softmax的目标是什么?目标 xgboost中的目标是学习算法将尝试和优化的目标。根据定义,它必须能够在给定的训练回合中创建第一(梯度)和第二(海森)导数w.r.t.预测 自定义目标功能示例: 注意,它只返回一个名称(度量)和一个分数(值)。通常,feval和objective可能是相同的,但可能您想要的评分机制有点不同,或者没有衍生

xgboost在R中的
objective
feval
之间有什么区别?我知道这是一件非常基本的事情,但我无法准确地定义它们/它们的目的


另外,在进行多类别分类时,softmax的目标是什么?

目标

xgboost
中的
目标是学习算法将尝试和优化的目标。根据定义,它必须能够在给定的训练回合中创建第一(梯度)和第二(海森)导数w.r.t.预测

自定义
目标
功能示例:

注意,它只返回一个名称(度量)和一个分数(值)。通常,
feval
objective
可能是相同的,但可能您想要的评分机制有点不同,或者没有衍生工具。例如,人们使用logloss
objective
进行训练,但创建AUC
feval
来评估模型

此外,一旦模型停止改进,您可以使用
feval
停止训练。您可以使用多个
feval
函数以不同的方式对模型进行评分,并观察所有这些评分

训练模型不需要
feval
函数。只是为了评估它,帮助它尽早停止训练

摘要:

目标
是主要工作

feval
是允许
xgboost
做一些很酷事情的助手

softmax
是一个
目标
函数,常用于多类分类。它确保您的所有预测总和为一,并使用指数函数进行缩放

# user define objective function, given prediction, return gradient and second order gradient
# this is loglikelihood loss
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))
}
evalerror <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  err <- as.numeric(sum(labels != (preds > 0)))/length(labels)
  return(list(metric = "error", value = err))
}