사용자 정의 평가 메트릭을 사용하여 validaiton 세트에서 "early.stop.round"기능을 사용하려고합니다. 즉, feval "기능). !Xgboost 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
오류 경우에 (((||) & & 점수> bestScore을 극대화 & &이 < 점수를 극대화 : 그러나, 나는 다음과 같은 오류 메시지가 FALSE/TRUE가 필요 없는 값을
스톱 라운드 기능을 사용하지 않기 때문에이 오류를 피할 수 있습니다. 스톱 라운드 기능을 동시에 유지하여 해결 방법에 대한 아이디어가 있습니까?
고마워요! 레오