在哪些条件下梯度提升机器优于随机森林?

机器算法验证 机器学习 数据挖掘 随机森林 助推
2022-02-14 16:52:44

Friedman 的梯度提升机能否实现比Breiman 的随机森林更好的性能?如果是这样,在什么条件下或者什么样的数据集可以让gbm更好?

2个回答

以下解释了为什么 Boosting 在实践中通常优于随机森林,但我很想知道哪些其他不同的因素可以解释 Boosting 在特定设置中优于 RF 的原因。

基本上,在error=bias+variance在框架中,RF 只能通过减少方差来减少误差(Has​​tie et al. 2009 p. 588)。偏差是固定的,等于森林中一棵树的偏差(因此需要种植非常大的树,它们的偏差非常低)。

另一方面,Boosting 减少了偏差(通过在序列中添加每棵新树,以便捕获前一棵树遗漏的内容),但减少了方差(通过组合许多模型)。

因此,Boosting 在两个方面都减少了错误,而 RF 只能通过减少方差来减少错误。当然,正如我所说,对于在实践中观察到的 Boosting 更好的性能,可能还有其他解释。例如,上述书籍的第 591 页,据说 Boosting 在嵌套球体问题上的表现优于 RF,因为在这种特殊情况下,真正的决策边界是相加的(?) 他们还报告说,对于垃圾邮件和加利福尼亚的住房数据,Boosting 比 RF 做得更好。

另一个发现 Boosting 优于 RF 的参考文献是Caruana 和 Niculescu-Mizil 2006不幸的是,他们报告了结果,但没有尝试解释导致它们的原因。他们比较了两个分类器(以及更多分类器)在 11 个二元分类问题上的 8 个不同性能指标。

正如bayerj所说,没有办法先验地知道!

随机森林相对容易校准:大多数实现(例如 R 或 Python)的默认参数都能取得很好的效果。

另一方面,GBM很难调优(太多的树会导致过拟合,最大深度很关键,学习率和树的数量共同作用……)而且训练时间更长(多线程实现很少) . 执行松散的调整可能会导致性能下降。

但是,根据我的经验,如果您在 GBM 上花费足够的时间,您可能会获得比随机森林更好的性能。

编辑。为什么 GBM 优于随机森林?Antoine 的回答要严谨得多,这只是一个直观的解释。它们有更多的关键参数。就像随机森林一样,您可以校准树的数量和m树生长的变量的数量。但是你也可以校准学习率和最大深度。当你观察到比随机森林更多的不同模型时,你更有可能找到更好的东西。