Python Xgboost early.stop.round错误与自定义度量

Python Xgboost early.stop.round错误与自定义度量,python,r,machine-learning,xgboost,Python,R,Machine Learning,Xgboost,我试图在validaiton集合上使用xgb.train(xgboost library-R)的“early.stop.round”函数,方法是使用一个自定义的求值度量(即“feval”函数)。但是,我收到以下错误消息: xgbMatrixTrain <- xgb.DMatrix(as.matrix(train[,-c(1,2)]), label =train$y,missing="NAN") xgbMatrixValid <- xgb.DMatrix(as.ma

我试图在validaiton集合上使用xgb.train(xgboost library-R)的“early.stop.round”函数,方法是使用一个自定义的求值度量(即“feval”函数)。但是,我收到以下错误消息:

 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

xgbMatrixTrain没有可复制的示例,我无法运行您的代码。
您得到的错误可能与您的代码无关,但可能来自数据中的错误,但很难说没有数据!
我见过类似于您的错误消息,当二进制响应变量中缺少0或1个值时。
Xgboost只处理数字数据,因此值得检查。
缺少的=“NAN”是否会导致您的数据出现问题?
如果删除缺少响应的行,会发生什么情况?
嗯,皮特表哥