【问题标题】:How to limit xgboost execution time?如何限制 xgboost 的执行时间?
【发布时间】:2018-04-23 22:03:21
【问题描述】:

如何限制 xgboost 的执行时间(例如,我在集群中有 1 小时的“计算预算”)?也可以限制 xgboost 的轮数吗?

【问题讨论】:

  • 澄清一下,您希望根据执行它们需要多长时间来设置轮数?
  • @dataprincess 不,这是单独的问题。

标签: python machine-learning xgboost


【解决方案1】:

如果您直接调用 xgboost.train 函数,这是可能的,XGBModel.fit 在后台使用该函数。此函数有一个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])

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2012-08-25
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多