gpt4 book ai didi

r - R : what is the tolerance for xgb. cv 的 early_stopping_rounds 中的 xgboost?

转载 作者:行者123 更新时间:2023-12-05 07:03:01 27 4
gpt4 key购买 nike

xgb.cv 函数(来自库 xgboost)中,其中一个选项是 early_stopping_rounds。这个选项的描述是:

如果为 NULL,则不触发提前停止功能。如果设置为整数 k,如果性能在 k 轮中没有提高,则使用验证集进行训练将停止。设置此参数会调用 cb.early.stop 回调。

“如果 k 轮性能没有提高”到底是什么意思?是否为此设置了容忍级别 tol?即,如果 k 轮连续两轮之间的性能指标差异为 <tol?我想知道 xgb.cv 的容差级别是多少,但无法在文档中的任何地方找到它。

否则,是否仅仅意味着如果持续减少k轮?

最佳答案

此处的“性能”是指您选择的训练结果准确性衡量标准。它可能像均方误差等。

这里以均方误差为例。 xgb.cv 使用交叉验证方法训练模型。它通常将数据分成一些相等的折叠(默认情况下为 5),然后使用其中的 4 个训练模型并在其余部分上验证模型。重复此过程 5 次,每次使用不同的折叠组合,其余的用于验证。性能是5个验证数据的均方误差的平均值。

Xgb 训练过程需要很多轮才能获得更好的结果。但是他怎么知道什么时候停止训练过程以避免过度拟合(预测能力)并达到最低的错误率(准确率)?这是提前停止方法的用武之地。

过程类似于:训练当前轮次的模型并计算训练和验证误差。如果验证错误率高于先前运行(轮次)中的最低验证错误率,则计算到该最低验证轮次的轮数。如果计数高于预设的“k”,则停止训练过程并返回最终模型。

early stopping graph

保持合理的“k”值的另一个原因是通过进一步测试避免局部最小值。

你说的tolerance,可能是指每一轮的gradient boosting过程,在xgboost的website上已经简单讨论过了。 .

关于r - R : what is the tolerance for xgb. cv 的 early_stopping_rounds 中的 xgboost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63382446/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com