XGBoost 会在边际改进后提前停止吗?

问题描述

我知道如果我们在最后 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
  1. 那么,marginal improvements 看起来就像 no improvement,对吗?
  2. 如果是,marginal improvements 的值是多少?我们可以设置它的值吗?

解决方法

您所链接的帖子中“边际改进”的含义非常不清楚(并且可能具有误导性);以下是来自 documentation 的相关信息:

early_stopping_rounds (int) – 激活提前停止。验证指标需要在每个 early_stopping_rounds 轮中至少改进一次才能继续训练。

显然不支持“边际改进”的说法。