【发布时间】:2018-04-23 22:03:21
【问题描述】:
如何限制 xgboost 的执行时间(例如,我在集群中有 1 小时的“计算预算”)?也可以限制 xgboost 的轮数吗?
【问题讨论】:
-
澄清一下,您希望根据执行它们需要多长时间来设置轮数?
-
@dataprincess 不,这是单独的问题。
标签: python machine-learning xgboost
如何限制 xgboost 的执行时间(例如,我在集群中有 1 小时的“计算预算”)?也可以限制 xgboost 的轮数吗?
【问题讨论】:
标签: python machine-learning xgboost
如果您直接调用 xgboost.train 函数,这是可能的,XGBModel.fit 在后台使用该函数。此函数有一个num_boost_round 参数(用于限制提升轮数)和callbacks 参数,可用于检查运行时间并在需要时引发EarlyStopException。当然,你不能在迭代中间停下来,而是在time_limit - delta分钟内。
不幸的是,XGBModel(以及相应的 XGBRegressor 和 XGBClassifier)API 不允许传递回调,因此您必须将代码重构为低级 API:
params = {'eval_metric': True, ...}
trainDmatrix = DMatrix(X, label=y)
train(params, trainDmatrix, num_boost_round=10, callbacks=[callback])
【讨论】: