为什么GBDT比RF更容易overfitting?

  统计/机器学习 监督式学习    浏览次数:627        分享
0

GBDT是不是比RF更容易overfitting?如果是的话,为什么?

 

塔吉塔   2020-03-01 14:54



   3个回答 
5

GBDT是串行的,损失函数定下后集成树的生成全部以极小化损失函数为目标,后面的树一直在弥补前面的树犯下的错误,和并行结构的RF相比更容易过拟合。所以GBDT会采用更简单更浅的决策树防止过拟合,学习率与正则化项的引入也是为了这一目的,防止学得太快太猛,增加不同的声音。一点浅见,如有错误还请指正。

SofaSofa数据科学社区DS面试题库 DS面经

马里酪火鸡   2020-03-01 16:06

谢谢 - 塔吉塔   2020-03-01 17:13
3

随机森林和分类树相比是减少了方差,GBDT和随即森林比是减少了偏差。偏差约减,越容易过拟合。

GBDT在训练的过程中,随着树的个数的增加,训练偏差会一直减小,甚至减到0,这时候测试误差反而会很大,这个就是过拟合了。对于随机森林,训练误差不会随着树的增加而一直减少,所以不是特别容易过拟合。

SofaSofa数据科学社区DS面试题库 DS面经

我小宋   2020-03-14 17:38

嗯,是的,所以gbdt有早停这个概念吧 - 塔吉塔   2020-03-29 14:51
2

Random Forest

​采用bagging思想,即利用bootstrap抽样,得到若干个数据集,每个数据集都训练一颗树。

构建决策树时,每次分类节点时,并不是考虑全部特征,而是从特征候选集中选取若干个特征用于计算。弱特征共有p个,一般选取m=sqrt(p)个特征。当可选特征数目很大时,选取一个较小的m值,有助于决策树的构建。

​当树的数量足够多时,RF不会产生过拟合,提高树的数量能够使得错误率降低。

GBDT

采用Boosting思想(注意是Boosting,不是Boostrap)​

不采用Boostrap抽样的方法(RF采用了),每次迭代过程都会使用全部数据集(会有一些变化,即采用的是上一轮训练后得到的预测结果与真实结果之间的残差(残差是由损失函数计算得到的))。

​GBDT的每棵树是按顺序生成的,每棵树生成时都需要利用之前一棵树留下的信息(RF的树是并行生成的)。

​GBDT中树的数目过多会引起过拟合(RF不会)。

​构架树时,深度为1时通常效果很好(深度为1的决策树称为决策桩decision stumps)。

SofaSofa数据科学社区DS面试题库 DS面经

公众号:AI深度视线   2020-03-31 11:17



  相关主题

Random Forest 过拟合有什么好办法?   3回答

决策树模型有什么特点以及如何防止过拟合?   2回答

随机森林会发生过拟合(overfitting)吗?   2回答

为什么过拟合不好?   8回答

线下训练集和测试集防过拟合   1回答

关于LR过拟合的数据集问题   1回答

训练集加入噪声防止over fitting还是加剧overfitting?   3回答

BatchNorm层能够防止神经网络过拟合嘛?   1回答

unsupervised learning也会over-fitting吗?   2回答

xgboost是如何实现early stopping防止过拟合的?   1回答

L0 norm 正则是什么意思?   2回答

如何简单理解正则化   4回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!