随机森林 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,审阅:

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

相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
基于SVm和随机森林算法模型的中国黄金价格预测分析与研究
本文通过运用支持向量机(SVM)、决策树和随机森林算法,结合历史黄金价格数据和特征工程,建立了中国黄金价格的预测模型,并通过模型训练、评估及可视化分析,为黄金市场投资者和分析师提供了基于机器学习算法的预测方法和决策支持。
108 0
|
5月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
59 3
|
6月前
|
机器学习/深度学习 数据可视化 算法
使用自组织映射神经网络(SOM)进行客户细分
使用自组织映射神经网络(SOM)进行客户细分
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言使用自组织映射神经网络(SOM)进行客户细分
R语言使用自组织映射神经网络(SOM)进行客户细分
|
6月前
|
机器学习/深度学习 人工智能 关系型数据库
南京大学提出量化特征蒸馏方法QFD | 完美结合量化与蒸馏,让AI落地更进一步!!!
南京大学提出量化特征蒸馏方法QFD | 完美结合量化与蒸馏,让AI落地更进一步!!!
205 0
|
机器学习/深度学习 数据采集 数据可视化
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)
|
机器学习/深度学习 算法
瞎聊机器学习——朴素贝叶斯以及拉普拉斯平滑
瞎聊机器学习——朴素贝叶斯以及拉普拉斯平滑
|
机器学习/深度学习 数据可视化 算法
机器学习加速药物发现,基于 GNN 的分子表征对比学习
机器学习加速药物发现,基于 GNN 的分子表征对比学习
193 0
|
机器学习/深度学习 人工智能
做时间序列预测有必要用深度学习吗?事实证明,梯度提升回归树媲美甚至超越多个DNN模型
做时间序列预测有必要用深度学习吗?事实证明,梯度提升回归树媲美甚至超越多个DNN模型
249 0
|
机器学习/深度学习 人工智能 算法
Focal Loss 后继之秀 | LMFLOSS:用于解决不平衡医学图像分类的新型混合损失函数
Focal Loss 后继之秀 | LMFLOSS:用于解决不平衡医学图像分类的新型混合损失函数
358 0
下一篇
无影云桌面