2017-11-10 11 views
1

xgboostの実行時間を制限する方法(たとえば、クラスタに1時間の計算予算があります)?ラウンド数でxgboostを制限することも可能ですか?xgboost実行時間を制限する方法は?

+0

明確にするために、あなたはそれらを実行するのにかかる時間に基づいてラウンドの数を設定しようとしていますか? –

+0

@dataprincessいいえ、それは別の質問です。 – mrgloom

答えて

1

で使用されているxgboost.train関数を直接呼び出すことは可能です。この関数には、実行時間を確認し、必要に応じてEarlyStopExceptionを呼び出すために使用できるパラメータnum_boost_round(昇圧ラウンド数を制限する)とcallbacksパラメータがあります。もちろん、反復の途中で停止することはできませんが、time_limit - delta分です。

残念ながら、XGBModel(およびそれに対応XGBRegressorXGBClassifier)APIを使用すると、低レベルのAPIにコードをリファクタリングする必要がありますので、コールバックを通過することはできません:

params = {'eval_metric': True, ...} 
trainDmatrix = DMatrix(X, label=y) 
train(params, trainDmatrix, num_boost_round=10, callbacks=[callback]) 
関連する問題