问题描述
我知道如果我们在最后 X 轮中没有任何改进(或性能下降),就会发生提前停止。即我们需要在最后一个 X 中至少进行一轮且几乎没有改进,才能继续。
但我在这里读到: https://www.kaggle.com/vincentf/early-stopping-for-xgboost-python 以下代码内注释:
stops 50 iterations after marginal improvements or drop in performance on your hold out set
- 那么,
marginal improvements
看起来就像no improvement
,对吗? - 如果是,
marginal improvements
的值是多少?我们可以设置它的值吗?
解决方法
您所链接的帖子中“边际改进”的含义非常不清楚(并且可能具有误导性);以下是来自 documentation 的相关信息:
early_stopping_rounds (int) – 激活提前停止。验证指标需要在每个 early_stopping_rounds 轮中至少改进一次才能继续训练。
显然不支持“边际改进”的说法。