2017-11-10 17 views
1

xgboost 실행 시간을 제한하는 방법 (예 : 클러스터에서 '계산 예산'을 1 시간 씩)? 또한 xgboost를 라운드 수로 제한 할 수 있습니까?xgboost 실행 시간을 제한하는 방법은 무엇입니까?

+0

명확히하기 위해, 당신은 그들을 실행하는 데 걸리는 시간을 기준으로 라운드 수를 설정하려고하십니까? –

+0

@dataprincess 아니요, 별개의 질문입니다. – mrgloom

답변

1

에 의해 사용되는 xgboost.train 함수를 직접 호출하는 것이 가능합니다. 이 함수에는 num_boost_round 매개 변수 (증가하는 라운드 수를 제한하는 매개 변수)와 callbacks 매개 변수가있어 실행 시간을 확인하고 필요할 경우 EarlyStopException을 발생시킬 수 있습니다. 물론 반복의 중간에 멈출 수는 없지만 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])