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

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

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
《C 语言赋能:粒子群优化神经网络训练之路》
神经网络是人工智能领域的明星,其训练过程至关重要。粒子群优化算法(PSO)结合C语言的高效特性,为神经网络训练提供了新的优化途径。本文介绍如何用C语言实现PSO算法,通过合理初始化粒子群、迭代优化粒子位置和速度,以及动态调整惯性权重等参数,提高神经网络的性能。尽管实现过程中存在挑战,但这种方法有望显著提升神经网络的准确性和泛化能力。
|
3月前
|
机器学习/深度学习 算法
深度学习中的自适应抱团梯度下降法
【10月更文挑战第7天】 本文探讨了深度学习中一种新的优化算法——自适应抱团梯度下降法,它结合了传统的梯度下降法与现代的自适应方法。通过引入动态学习率调整和抱团策略,该方法在处理复杂网络结构时展现了更高的效率和准确性。本文详细介绍了算法的原理、实现步骤以及在实际应用中的表现,旨在为深度学习领域提供一种创新且有效的优化手段。
|
8月前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。
|
8月前
|
机器学习/深度学习 数据可视化 算法
使用自组织映射神经网络(SOM)进行客户细分
使用自组织映射神经网络(SOM)进行客户细分
|
8月前
|
机器学习/深度学习 搜索推荐 数据可视化
机器学习中7种常用的线性降维技术总结
上篇文章中我们主要总结了非线性的降维技术,本文我们来总结一下常见的线性降维技术。
504 6
|
8月前
|
机器学习/深度学习 数据可视化 算法
R语言使用自组织映射神经网络(SOM)进行客户细分
R语言使用自组织映射神经网络(SOM)进行客户细分
|
8月前
|
机器学习/深度学习 算法 大数据
金融统计学方法:神经网络
金融统计学方法:神经网络
84 0
|
机器学习/深度学习
RBF神经网络案例——客户流失率预测(二)
RBF神经网络案例——客户流失率预测
|
机器学习/深度学习
RBF神经网络案例——客户流失率预测(一)
RBF神经网络案例——客户流失率预测
129 0
|
机器学习/深度学习 数据采集 数据可视化
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)
112 0