sklearn:使用 eval_set 提前停止?

mom*_*ind 6 python scikit-learn

我正在使用xgboost它,它提供了early_stopping非常好的功能。

但是,当我查看sklearn fit函数时,我只看到Xtrain, ytrain参数,而没有看到early_stopping 的参数。

有没有办法将评估集传递给 sklearn 以进行 early_stopping?

谢谢

Chr*_*ris 5

在 中sklearn.ensemble.GradientBoosting,必须在实例化模型时配置提前停止,而不是在执行时配置fit

验证分数:浮点数,可选,默认 0.1 留出作为验证集用于提前停止的训练数据的比例。必须介于 0 和 1 之间。仅在 n_iter_no_change 设置为整数时使用。

n_iter_no_change : int, default None n_iter_no_change 用于决定当验证分数没有提高时是否使用提前停止来终止训练。默认情况下,它设置为 None 以禁用提前停止。如果设置为一个数字,它将留出训练数据的validation_fraction 大小作为验证,并在之前的所有 n_iter_no_change 迭代次数中验证分数没有提高时终止训练。

tol : 浮动,可选,默认 1e-4 提前停止的容差。当 n_iter_no_change 迭代(如果设置为数字)的损失没有至少改善 tol 时,训练停止。

为了设置early_Stopping,您应该考虑将上述参数传递给您的模型。

您可能需要阅读早期停止梯度提升以获得完整的解释和示例。