为XGBoost提前停止设置Tol

时间:2017-05-04 01:58:55

标签: python machine-learning xgboost

我正在使用XGBoost并提前停止。在大约1000个时期之后,该模型仍在改进,但改进的幅度非常低。即:

 clf = xgb.train(params, dtrain, num_boost_round=num_rounds, evals=watchlist, early_stopping_rounds=10)

是否可以设置" tol"提早停止?即:不触发早期停止所需的最低改进水平。

Tol是SKLearn模型中的常用参数,例如MLPClassifier和QuadraticDiscriminantAnalysis。谢谢。

2 个答案:

答案 0 :(得分:1)

我认为xgboost中没有参数tol,但您可以将early_stopping_round设置得更高。此参数表示如果测试集上的性能在early_stopping_round次没有改善,则会停止。如果您知道在1000个时期之后您的模型仍在改进但速度非常慢,请将early_stopping_round设置为50,例如这样它将更多" tolerante"关于性能的微小变化。

答案 1 :(得分:0)

issue 在 XGBoost Github 的 repo 中仍然是开放的,所以即使 sklearnh2o 等包装器似乎已经具有此功能,xgboost 本身仍然是缺少 stopping_tolerance 超参数...

让我们为 it here 点赞以加快速度,好吗?