2016-04-27 2 views
2

J'ai ci-dessous le code. Supposons que l'optimisation s'est arrêtée après 600 tours et le meilleur tour était de 450. Quel modèle sera utilisé pour la prédiction - un après le 450e tour ou après le 600e?R xgboost prédire avec early.stop.round

watchlist <- list(val=dval,train=dtrain) 

param <- list( objective   = "binary:logistic", 
       booster    = "gbtree", 
       eval_metric   = "auc", 
       eta     = 0.02, 
       max_depth   = 7, 
       subsample   = 0.6, 
       colsample_bytree = 0.7 
) 

clf <- xgb.train( params    = param, 
        data    = dtrain, 
        nrounds    = 2000, 
        verbose    = 0, 
        early.stop.round = 150, 
        watchlist   = watchlist, 
        maximize   = TRUE 
) 

preds <- predict(clf, test) 

Répondre

3

Après quelques recherches, j'ai trouvé la réponse moi-même. Predict utilisera le modèle après 600 tours. Si l'on veut utiliser le modèle avec le meilleur résultat, devrait utiliser preds <- predict(clf, test, ntreelimit=clf$bestInd)