为什么梯度提升使用无替换采样?

数据挖掘 机器学习 随机森林 决策树 xgboost 采样
2021-09-14 16:07:11

在随机森林中,每棵树都是通过选择替换样本(引导程序)构建的。我假设 Gradient Boosting 的树是使用相同的采样技术选择的。(@BenReiniger 纠正了我)。 这里有为 Catboost 实施的采样技术

我的问题:

  • 为什么 Gradient Boosting 采样不进行替换?
  • 为什么用替换取样最糟糕?
  • GB 中是否有任何可替换的采样技术?

我为 SGB 引用了一篇论文:

随机梯度提升是标准梯度提升算法的随机版本...通过使用完整数据集的子采样将随机性添加到树构建过程中。对于 boosting 过程的每一次迭代,SGB 的采样算法随机选择 s·N 个对象,无需放回且均匀

1个回答

为什么 Gradient Boosting 采样不进行替换?

您的第一个问题似乎表明基本分类器将始终具有子采样机制,但这不一定是正确的。

请注意,在 Catboost 文档中提到的是“随机梯度提升”而不是“梯度提升”。随机梯度提升是梯度提升的一种变体,它精确地基于在每次迭代中使用数据子集构建提升过程。因此,每个基本模型都看不到整个训练数据,它只看到数据的一个子集(或小批量)。

您可能希望这样做有两个主要原因:更快的训练时间、正则化效果。

为什么用替换取样最糟糕?

只要您在基本分类器中进行采样,速度优势应该非常相似。如果您的基本分类器不进行任何采样,那么随机梯度提升算法将收敛得更快。就像神经网络的 Mini Batch 版本比 Full Batch 版本收敛得快得多。

GB 中是否有任何可替换的采样技术?

标准梯度提升使用所有数据在提升过程的每个步骤中构建梯度。

如果您进行全批量学习,但您的基本分类器具有“子样本”参数,那么您实际上是在提升过程的每个步骤中进行采样和替换。