在最大深度和估计器数量或轮数之间取得平衡

Balancing between max depth and number of estimators or number of rounds

这是一个关于 xgb 和梯度提升的理论问题。我怎样才能找出 max_depth 和 num_rounds 或 n_estimators 的最佳平衡点。显然 more max_depth 会创建复杂的模型,这在 boosting 中是不推荐的,但是数百轮的 boosting 也会导致训练数据过拟合。假设 CV 为 max_depth 5 和 num_rounds 1000 与 max_depth 15 和 num_rounds 100 提供相同的 mean/std - 在发布未知模型时我应该使用哪个数据?

理论上可以为这些模型提供泛化界限,但问题是——它们非常松散。因此,具有较小的上限并不能真正保证更好的分数。实际上,最好的方法是使您的泛化估计更可靠——您使用的是 10-CV?使用 10x10 CV(10 次随机洗牌 10CV),如果仍然没有给出答案,请使用 100。在某个时候你会成为赢家。此外,如果您实际上要将模型发布到 public,也许期望值不是最佳指标? CV 通常会报告平均值(预期值)——所以不要只看这个——要看获得的整个结果范围。具有相同均值和不同标准差的两个值清楚地表明要选择什么。当均值和标准差都相同时,您可以查看分数的最小值(这将捕获 "worst case" 场景)等

总结:仔细查看分数,而不仅仅是平均值 - 并多次重复评估以使其可靠。