gpt4 book ai didi

python - xgboost CV 和树的数量

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:51 25 4
gpt4 key购买 nike

我正在浏览文章 here但不完全了解有关 xgboost 中函数 CV 和参数“树数”的详细信息。

假设我们从一个包含特征和目标值的数据框开始。 CV在每一轮中做什么?如果CV结果有500行(即有500棵决策树),每棵树是如何构建的? 500 棵树是如何组合起来产生一个对数损失数的?

如果我们可以从 CV 函数中获得单个预测,为什么我们需要 XGBClassifier.fit 来生成模型(因此是损失数)?

谢谢。

最佳答案

Xgboost 是一种梯度提升方法,因此它在每次迭代中添加树以提高预测精度。请参阅本文中的介绍以了解梯度提升的工作原理:https://www.analyticsvidhya.com/blog/2016/02/complete-guide-parameter-tuning-gradient-boosting-gbm-python/ .这应该可以解释树是如何构建的。

当您添加越来越多的树时,预测准确度会增加,直到您开始过度拟合,此时预测准确度会降低。因此,您需要找到最佳数量的树。

基本上不可能从一开始就猜到这个数字。这就是 xgboost.cv 的用途。它将您的训练数据分成两个子集。第一个子集用于训练 xgboost,第二个子集用作验证集。在每次迭代(添加额外的树)之后,xgboost 计算新的验证错误。有了这个,xgboost 就能够检测到它何时开始过度拟合(当验证错误开始增加时)。这将为您提供一组给定超参数的最佳树数。

请注意,xgboost.cv 返回评估历史记录(列表),而 xgboost.train 返回助推器。

另请注意,xgboost.fit 是 sklearn 包装器的一部分(因此最好不要将它与 xgboost.cv 进行比较,后者是 xgboost 学习 API 的一部分)。

最后一点:您不需要 xgboost.cv 来找到最佳树数。您还可以运行 xgboost.train 并设置“early_stopping_rounds”。

如果您有任何问题,请在评论中告诉我。

关于python - xgboost CV 和树的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892211/

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