当您添加越来越多的树,直到您开始过度使用时,预测准确度会增加,此时预测准确度会降低。所以你需要找到最佳数量的树。
基本上不可能从一开始就猜出这个数字。这就是xgboost.cv的用途。它将您的训练数据分成两个子集。第一个子集用于训练xgboost,第二个用作验证集。每次迭代之后(添加一个额外的树)xgboost计算新的验证错误。有了这个xgboost能够检测到它开始过度使用时(当验证错误开始增加时)。这将为给定的超参数集提供最佳树数。
请注意,xgboost.cv返回评估历史记录(列表),而xgboost.train返回一个助推器。
另请注意,xgboost.fit是sklearn包装的一部分(所以最好不要将其与xgboost.cv进行比较,它是xgboost学习api的一部分)。
最后说明:您不需要xgboost.cv来查找最佳树数。您还可以运行带有“early_stopping_rounds”集的xgboost.train。
如果您有任何问题,请在评论中告知我。