在什么情况下可以使用 bagging 而不是 boosting?

In what scenario bagging can be used over boosting?

我是数据科学的新手,到目前为止,我了解到套袋只会降低高方差,而提升会降低方差和偏差,从而提高训练和测试用例的准确性。

我了解两者的功能。似乎在准确性提升方面总是比装袋表现更好。如果我错了,请纠正我。

是否有任何参数使 bagging 或基于 bagging 的算法比 boosting 更好 - 无论是在内存、速度还是复杂数据处理或任何其他参数方面。

你是对的。它们都有助于提高模型的准确性。事实上,在大多数情况下,boosting 比 bagging 更好,因为它在每个阶段都在学习。 但是,在您的模型过度拟合的情况下,boosting 会继续过度拟合,而 bagging 在这种情况下会有所帮助,因为树总是基于新的数据子集。 简而言之。在出现过拟合问题的情况下,Bagging 优于 boosting。

bagging 有两个特性可以使其比 boosting 更具吸引力:

  1. 它是可并行的 - 由于装袋的 embarrassingly parallel 性质,您可以将训练过程加快 4-8 倍,具体取决于您的 cpu 核心。
  2. Bagging 相对来说对噪声更稳健 (paper)。现实生活中的数据很少像我们在学习数据科学时玩的玩具数据集那样干净。 Boosting 有过拟合噪声的倾向,而 Bagging 在处理噪声方面相对更好。

bagging 和 boosting 的目标完全不同。 Bagging 是一种试图减少方差的集成技术,因此应该在低偏差但高方差的情况下使用它,例如具有低邻居数的 KNN 或完全成长的决策树。另一方面,提升试图减少偏差,因此它可以处理高偏差但方差低的问题,例如浅层决策树。