私はカスタム評価メトリックを使用してvalidaitonセットでxgb.train(xgboostライブラリ-R)の "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が必要 欠損値を
ストップラウンド機能を使用しないことで、このエラーを回避できます。ストップラウンド機能を同時に保持することで、これを解決する方法はありますか?
ありがとうございました! レオ