gpt4 book ai didi

python - 自定义指标的 Xgboost Early.stop.round 错误

转载 作者:行者123 更新时间:2023-11-30 09:10:18 24 4
gpt4 key购买 nike

我试图通过使用自定义评估指标(即“feval”函数)在验证集上使用 xgb.train(xgboost 库 - R)的“early.stop.round”函数。但是,我收到以下错误消息:

 xgbMatrixTrain <- xgb.DMatrix(as.matrix(train[,-c(1,2)]), label         =train$y,missing="NAN")
xgbMatrixValid <- xgb.DMatrix(as.matrix(valid[,-c(1,2)]), label = valid$y, missing="NAN")


MAE <- function(preds, dtrain) {

labels <- getinfo(dtrain, "label")
err <- as.numeric(sum(abs(exp(labels) - exp(preds))))/length(labels)
return(list(metric = "mae error", value = err))
}

myWatch <- list(val=xgbMatrixValid,train=xgbMatrixTrain)
bst.mae2<- xgb.train(params = param.noerr,
data = xgbMatrixTrain,
feval = MAE, nround=150,
print.every.n = 1,
watchlist=myWatch,
early.stop.round = 20,
maximize = FALSE)

[0] val-mae error:0.59831651363868 train-mae error:0.598864823842993

if ((最大化 && 得分 > bestScore) || (!最大化 && 得分 < : 需要 TRUE/FALSE 时缺少值

通过不使用停止轮函数,我可以避免此错误。关于如何通过同时保留停止轮函数来解决这个问题有什么想法吗?

非常感谢大家!狮子座

最佳答案

如果没有可重现的示例,我无法运行您的代码。您得到的错误可能与您的代码无关,但可能来自数据错误,但在没有数据的情况下很难说!当二进制响应变量中缺少 0 或 1 值时,我看到过像您这样的错误消息。Xgboost 仅处理数字数据,因此这可能值得检查。缺失的“NAN”是否会导致您的数据出现问题?如果删除缺少响应的行会发生什么?HTH,表弟皮特

关于python - 自定义指标的 Xgboost Early.stop.round 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com