xgboost 的装袋

机器算法验证 机器学习 助推 装袋 坡度
2022-03-19 13:56:12

如今,极端梯度提升算法似乎得到了广泛的应用。我经常觉得增强模型倾向于过度拟合。我知道算法中有参数可以防止这种情况。坚持这里的文档参数subsample,并且colsample_bytree可以(除其他外)防止过度拟合。但它们的用途与装袋 xgboosted 模型的用途不同 - 对吧?

我的问题:你会在 xgboost 之上应用 bagging 来减少拟合的方差吗?

到目前为止,问题是统计的,我敢于添加代码细节:如果装袋有意义,我会对使用 R 包的示例代码感到高兴caret

评论后编辑:如果我们仅依靠参数来控制过拟合,那么我们如何才能最好地设计交叉验证?我有大约。6000 个数据点并应用 5 倍 x 验证。什么可以提高样本外性能:进行 10 倍 x 验证或重复 5 倍 x 验证?顺便提一下:我使用cartet实施此类策略的包。

1个回答

bagging 中的包是关于聚合的。如果你有 k 个 CART 模型,那么对于一个输入,你会得到 k 个候选答案。您如何将其减少到单个值。聚合就是这样做的。它通常是集中趋势的度量,如均值或众数。

为了聚合,您需要多个输出。XGboost 中的梯度提升机 (gbm) 是一个串联集合,而不是并行集合。这意味着它将它们全部排成一个桶旅,所有学习者(除了前面和后面)都获取一个的输出,并将其提供给下一个)。最终输出与 CART 模型的结构相同 - 单个输出。无需对单个元素进行引导。