GBDT和RF

随机森林(Random Forest, RF)和迭代决策树(Gradient Boosting Decision Tree, GBDT)都是通过构建多个决策树来组成集成模型, 他们分别属于Bagging和Boosting两大类算法。


Bagging (Bootstrap Aggregation)算法

1. 用重置抽样(sample with replacement)在原有的训练数据集(training set) 创造新的抽样训练数据集,新的训练数据集和原训练数据集的数量相同,所以其中会有重复的数据,这个过程称为Bootstrapping。

2. 重复上一步,例如500次,每一次都会训练出一个决策树。

3. 用这500个决策树去进行预测,对于回归问题(Regression), 可以取平均数,对于分类问题(Classification), 用投票产生的大多数来决定。

RF作为Bagging的一种关于决策树的具体算法,通常会产生长的很深的树(fully grown decision trees ),通过减小方差来减小误差,而且在产生树的方式上也是平行的,同时产生的。


Boosting算法

有很多Boosting的算法,例如AdaBoost和 Gradient Boosting. 但是在大方向上的大致的步骤如下:

1. 总的预测值是所有模型的加权(求平均或直接相加)。

2. 在最初的训练数据集上训练第一个模型,然后把总的预测值建立在第一个模型上。

3. 评估总预测值的误差(调整训练的数据集或者计算残差)。

4. 训练新的模型,并把它加到总的预测值中。

5. 重复3&4

GBDT作为Boosting的一种关于决策树的具体算法,通常会比较浅的树,通过减小偏差来减小误差,在产生树的方式上是一个一个产生的,有序列的。


用xgboost/gbdt在在调参的时候把树的最大深度调成6就有很高的精度了。但是用DecisionTree/RandomForest的时候需要把树的深度调到15或更高。


wikipedia

GBDT

AdaBoost



附:

误差(Error )= 偏差(Bias )+ 方差(Variance)

如下图所示,当模型越复杂时,拟合的程度就越高,模型的训练偏差就越小。但此时如果换一组数据可能模型的变化就会很大,即模型的方差很大。所以模型过于复杂的时候会导致过拟合。
当模型越简单时,即使我们再换一组数据,最后得出的学习器和之前的学习器的差别就不那么大,模型的方差很小。还是因为模型简单,所以偏差会很大。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值