2015-10-12 1 views
0

Я пытаюсь использовать аргумент early.stop.round в функции xgb.cv библиотеки xgboost, однако у меня есть ошибка. После того, как я оставил early.stop.round неуказанным, функция запускается без каких-либо проблем. Что я сделал не так?Почему не работает аргумент early.stop.round в xgboost?

Вот мой пример кода:

library(xgboost) 

train = matrix(as.numeric(1:100),20,5) 
Y = rep(c(0,1),10) 
dtrain = xgb.DMatrix(train, label=Y) 

#cross validation when early.stop.round =5, gives an error 
CV = xgb.cv(data = dtrain, nround=200, nfold =2, metrics=list("auc"), 
      objective = "binary:logistic",early.stop.round = 5) 


#cross validation when early.stop.round is not specified, works 
CV = xgb.cv(data = dtrain, nround=200, nfold =2, metrics=list("auc"), 
      objective = "binary:logistic") 

Я использую xgboost_0.4-2

ответ

3

Похоже, что-то пойдет не так при использовании параметра метрики и early.stop одновременно. Удалите метрики и используйте early.stop с eval_metric = "auc".

+0

Спасибо! Это решает мою проблему. –