2016-04-27 16 views
2

以下のコードがあります。 600ラウンド後に最適化が停止し、最良ラウンドが450だったとしましょう。予測に使用するモデル - 450ラウンド後または600ラウンド後のいずれのモデルですか?R xgboostは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) 

答えて

3

私は自分自身で答えを見つけました。予測は600ラウンド後にモデルを使用します。最良の結果を持つモデルを使用したい場合は、preds <- predict(clf, test, ntreelimit=clf$bestInd)

関連する問題