随机森林 VS 梯度提升机——模型融合之我见

简介: 本文节选自Quora社区上“When would one use Random Forests over Gradient Boosted Machines (GBMs)?”问题的回答,几位博主就随机森林(Random Forests)与梯度提升机(Gradient Boosted Machines, GBMs)的适合场景以及优缺点展开了讨论。

更多深度文章,请关注:https://yq.aliyun.com/cloud


博主信息:Xavier Amatriain, 前机器学习领域研究员,如今就职于Quora。

随机森林相比于梯度提升决策树,主要有以下两个优点:

  1. 随机森林比梯度提升机更容易训练
  2. 随机森林比梯度提升机更难过拟合

对于第一点来说,随机森林通常只需要设置一个超参数即可:每个节点上随机选取的特征数量。在大多数情况下,将该参数设置为特征总数的平方根,模型足以取得不错的效果。而梯度提升机的超参数则包括提升树的数量和深度、学习率等等。

对于第二点,尽管我们称随机森林不会过拟合是不准确的,但是,随机森林的抗干扰性强,更不容易出现过拟合的情况。

在某种意义上讲,随机森林是一棵比梯度提升机更加灵活的集成树。但在一般情况下,经过良好训练的梯度提升机的性能往往优于随机森林。

此外,正如陈天奇(第二位博主)所提到的,随机森林往往更容易并行化。但是考虑到借助于一些高效方法,梯度提升机同样也能实现并行化训练,这算不上是随机森林的一个优势。

参考资料:

《Influence of Hyperparameters on Random Forest Accuracy》
随机森林——分类描述


博主信息:Tianqi Chen, 大规模机器学习领域博士

实际上,如果你一定要在两种方法中做出选择,参数经过精心调整的提升树的效果通常优于随机森林。主要原因在于训练目标的不同,提升树通过引入新的决策树来完善当前模型。我们往往可以使用较少的决策树就能够取得较高的准确率。

话虽如此,随机森林中二次取样和Bagging的思路同样也很重要。我们可以把这些思想纳入提升树的训练阶段,这有助于模型性能的进一步提升。

之前提到随机森林时,人们都会说随机森林更容易并行化,但是并行化的实现方法对提升树同样适用。提升树完全可以以分布式的形式高效地实现。我们在dmlc/xgboost中做到了这一点,XGBoost的性能非常优秀。

提升树的另一个优势在于模型本身,由于提升树是在最优化目标函数的过程中导出的,从本质上讲,它可以用于解决几乎所有能够求导的优化目标。这包括排名、泊松回归等等,在这一方面,随机森林则很难实现。我们有一个教程讨论了这一观点:提升树导论


博主信息:Waleed Kadous,机器学习与人工智能博士

不同的机器学习场景具有各自不同的特点。Boosting算法对噪声异常敏感,从偏差与方差间的权衡来看,如果数据是嘈杂的,Boosting算法可能会呈现出较高的模型方差。然而在其他情况下,Boosting算法往往能够取得较好的效果。

在另一方面,考虑到随机森林采用的模型融合方法与GBM不同,并不基于模型残差来构建集成模型,随机森林往往能够取得非常低的模型方差。

简而言之,你对两类算法的选择取决于你的应用场景,当你希望降低模型方差时,随机森林会是不错的选择;当你希望降低模型偏差时,GBM是不二之选。


博主信息:Eren Golge,AI研究员

二者的区别主要在于两个方面:算法上的区别以及实际应用时的效果差异。

在算法层面,随机森林通过对数据集进行随机采样来构建训练样本(在有些场景下,甚至还会对数据特征进行随机选择,仅使用部分特征进行训练),其认为随机化有利于模型在测试集上取得更好的泛化性能。

对于梯度提升树来说,假设最终模型是单棵决策树预测值的加权和,梯度提升树算法还会根据训练数据寻找所有决策树最优的线性组合。这种额外的调整或许可以理解为两类算法的差异。但需要注意的是,这些算法都有许多变种算法,在具体设计上可能存在一些相似的地方。

在应用层面,考虑到梯度提升树会根据观测值,对预测结果进行调整,其更容易受到噪声点的影响,进而导致梯度提升树更可能出现过拟合的情况。与此相反,随机森林对过拟合现象则具有更强的抗性。

因此,对这两类算法的选择取决于你当前的应用场景。


博主信息:Tong Zh,统计学博士

这两类算法间存在一个本质的区别,可能会迫使你放弃GBM,转而选择随机森林:由于各棵决策树的训练互不影响,随机森林能够轻松地部署在分布式环境中,而梯度提升树只能以序列化的方式训练。 因此,如果实验资源受数据规模或实验次数的限制,你可能不得不使用随机森林。

如果实验资源不受限,我个人更倾向使用GBM。我的观点和增强学习的思想不谋而合,这就好比你准备考试,完成一门测试之后,你肯定会花一些时间检查自己犯下的错误,而不是匆忙地准备下一场考试。

话虽如此,在真实环境下,我们还是经常会受到数据规模的限制,同样是训练2000棵决策树,随机森林要比GBM容易训练得多。


本文由北邮@爱可可-爱生活老师推荐,@阿里云云栖社区组织翻译。

文章原标题《When would one use Random Forests over Gradient Boosted Machines (GBMs)?》,译者:6816816151,审阅:

文章为简译,更为详细的内容,请查看原文,附件为原文完整截图

相关文章
|
机器学习/深度学习 人工智能 项目管理
【机器学习】集成学习——Stacking模型融合(理论+图解)
【机器学习】集成学习——Stacking模型融合(理论+图解)
4202 1
【机器学习】集成学习——Stacking模型融合(理论+图解)
|
1月前
|
机器学习/深度学习 计算机视觉
《深度剖析:残差连接如何攻克深度卷积神经网络的梯度与退化难题》
残差连接通过引入“短路”连接,解决了深度卷积神经网络(CNN)中随层数增加而出现的梯度消失和退化问题。它使网络学习输入与输出之间的残差,而非直接映射,从而加速训练、提高性能,并允许网络学习更复杂的特征。这一设计显著提升了深度学习在图像识别等领域的应用效果。
63 13
|
1月前
|
数据采集 机器学习/深度学习 传感器
《深度解析:深度信念网络DBN降维模型训练要点》
深度信念网络(DBN)在降维任务中表现出色,但正确的模型训练至关重要。DBN由多个受限玻尔兹曼机(RBM)堆叠而成,通过逐层预训练和微调学习数据的低维表示。训练要点包括:数据预处理(归一化、去噪)、参数设置(学习率、隐藏层节点数、训练轮数)、防止过拟合(正则化、数据增强)。每个环节对降维效果都有重要影响,需合理调整以发挥最佳性能。
72 10
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
446 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
3月前
|
人工智能 并行计算 算法
《C++在贝叶斯网络与隐马尔可夫模型中的深度探索与优化之路》
贝叶斯网络与隐马尔可夫模型是人工智能领域的两颗明珠,尤其擅长处理不确定性推理与时序数据分析。C++以其高性能、高效的数据处理能力和面向对象的特性,成为实现这两类模型的理想选择。C++不仅能够有效管理内存,支持大规模模型构建,还能通过多线程和并行计算显著提升计算效率,为模型的优化与应用提供了强大支持。尽管存在一定的开发挑战,但C++正不断进步,助力贝叶斯网络和隐马尔可夫模型在更多领域展现其独特价值。
61 11
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
《C++ 中 RNN 及其变体梯度问题的深度剖析与解决之道》
在AI发展浪潮中,RNN及其变体LSTM、GRU在处理序列数据上展现出巨大潜力。但在C++实现时,面临梯度消失和爆炸问题,影响模型学习长期依赖关系。本文探讨了这些问题的根源及解决方案,如梯度裁剪、合理初始化、选择合适激活函数、截断反向传播和优化网络结构等,旨在帮助开发者构建更有效的模型。
61 9
|
8月前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
|
7月前
|
机器学习/深度学习 数据采集 算法
基于SVm和随机森林算法模型的中国黄金价格预测分析与研究
本文通过运用支持向量机(SVM)、决策树和随机森林算法,结合历史黄金价格数据和特征工程,建立了中国黄金价格的预测模型,并通过模型训练、评估及可视化分析,为黄金市场投资者和分析师提供了基于机器学习算法的预测方法和决策支持。
308 0
|
7月前
|
机器学习/深度学习 算法
【机器学习】梯度消失和梯度爆炸的原因分析、表现及解决方案
本文分析了深度神经网络中梯度消失和梯度爆炸的原因、表现形式及解决方案,包括梯度不稳定的根本原因以及如何通过网络结构设计、激活函数选择和权重初始化等方法来解决这些问题。
823 0
|
10月前
|
机器学习/深度学习 搜索推荐 数据可视化
机器学习中7种常用的线性降维技术总结
上篇文章中我们主要总结了非线性的降维技术,本文我们来总结一下常见的线性降维技术。
587 6