2016-06-18 9 views
3

私はmloglossに基づいて、早期に停止してXGBoost.cvを使用しようとしています:XGBoost CVと早期停止

params = {'booster': 'gbtree', 'objective': 'multi:softprob', 
      'num_class': len(le.classes_), 'eta': 0.1, 
      'max_depth': 10, 'subsample': 1.0, 
      'scale_pos_weight': 1, 'min_child_weight': 5, 
      'colsample_bytree': 0.2, 'gamma': 0, 'reg_alpha': 0, 
      'reg_lambda': 1, 'eval_metric': 'mlogloss'} 

res = xgb.cv(params, dm_train, nfold=5, 
     seed=42, early_stopping_rounds=10, verbose_eval=True, 
     metrics={'mlogloss'}, show_stdv=False) 

print(res) 
早期停止の私の理解では、私はevalメトリックは(n個のラウンドのために改善されない場合は、ということです

この場合は10)、実行は終了します。私はこのコードを実行すると、それは出力を印刷、10ラウンド後に終了:(精度が改善されなければならないように)

test-mlogloss-mean    
0:    6.107054    
1:    5.403606      
2:    4.910938     
3:    4.546221      
4:    4.274113     
5:    4.056968     
6:    3.876368    
7:    3.728714      
8:    3.599812     
9:    3.485113     

試験mloglossしたがって、各エポックで落ちている、私は終了しないために、実行を期待しました。どこが間違っていますか?

ありがとうございました。

答えて

1

私はnum_roundsパラメータを設定しませんでした。デフォルトは10です。単純です。

関連する問題