R xgboost中客观与客观的区别
xgboost在R中的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可能是相同的,但可能您想要的评分机制有点不同,或者没有衍生
objective
和feval
之间有什么区别?我知道这是一件非常基本的事情,但我无法准确地定义它们/它们的目的
另外,在进行多类别分类时,softmax的目标是什么?目标
xgboost
中的目标是学习算法将尝试和优化的目标。根据定义,它必须能够在给定的训练回合中创建第一(梯度)和第二(海森)导数w.r.t.预测
自定义目标
功能示例:
注意,它只返回一个名称(度量)和一个分数(值)。通常,feval
和objective
可能是相同的,但可能您想要的评分机制有点不同,或者没有衍生工具。例如,人们使用loglossobjective
进行训练,但创建AUCfeval
来评估模型
此外,一旦模型停止改进,您可以使用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))
}