2016-04-27 11 views
2

Ich habe unter dem Code. Nehmen wir an, dass die Optimierung nach 600 Runden gestoppt wurde und die beste Runde 450 war. Welches Modell wird für die Vorhersage verwendet - eine nach der 450. Runde oder nach der 600. Runde?R xgboost vorhergesagt mit 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) 

Antwort

3

Nach einigen Recherchen fand ich selbst Antwort. Predict verwendet das Modell nach 600 Runden. Wenn man das Modell mit dem besten Ergebnis verwenden möchte, sollte preds <- predict(clf, test, ntreelimit=clf$bestInd)

verwendet werden
Verwandte Themen