梯度提升迭代决策树GBDT
GBDT也是Boosting算法的一种,但是和AdaBoost算法不同;区别如下:
AdaBoost算法是利用前一轮的弱学习器的误差来更新样本权重值,然后一轮一轮的迭代;GBDT也是迭代,但是GBDT要求弱学习器必须是CART模型,而且GBDT在模型训练的时候,是要求模型预测的样本损失尽可能的小。
别名:GBT(Gradient Boosting Tree)、GTB(Gradient Tree Boosting)、GBRT(Gradient Boosting Regression Tree)、GBDT(Gradient Boosting Decison Tree)、MART(Multiple Additive Regression Tree)
GBDT直观理解
梯度提升迭代决策树GBDT
GBDT由三部分构成:DT(Regression Decistion Tree)、GB(Gradient Boosting)
和Shrinkage(衰减)
由多棵决策树组成,所有树的结果累加起来就是最终结果迭代决策树和随机森林的区别:
随机森林使用抽取不同的样本构建不同的子树,也就是说第m棵树的构建和前m-1棵树的结果是没有关系的迭代决策树在构建子树的时候,使用之前子树构建结果后形成的残差作为输入数据构建下一个子树;然后最终预测的时候按照子树构建的顺序进行预测,并将预测结果相加。
GBDT算法原理
GBDT scikit-learn相关参数
GBDT总结
GBDT的优点如下:
可以处理连续值和离散值;
在相对少的调参情况下,模型的预测效果也会不错;
模型的鲁棒性比较强。
GBDT的缺点如下:
由于弱学习器之间存在关联关系,难以并行训练模型
Bagging、Boosting的区别
1. 样本选择:Bagging算法是有放回的随机采样;Boosting算法是每一轮训练集不变,只是训练集中的每个样例在分类器中的权重发生变化,而权重根据上一轮的分类结果进行调整;
2. 样例权重:Bagging使用随机抽样,样例的权重;Boosting根据错误率不断的调整样例的权重值,错误率越大则权重越大;
3. 预测函数:Bagging所有预测模型的权重相等;Boosting算法对于误差小的分类器具有更大的权重。
4. 并行计算:Bagging算法可以并行生成各个基模型;Boosting理论上只能顺序生产,因为后一个模型需要前一个模型的结果;
5. Bagging是减少模型的variance(方差);Boosting是减少模型的Bias(偏度)。
6. Bagging里每个分类模型都是强分类器,因为降低的是方差,方差过高需要降低是过拟合;Boosting里每个分类模型都是弱分类器,因为降低的是偏度,偏度过高是欠拟合。
Bagging、Boosting的区别
error = Bias + Variance
Stacking
Stacking是指训练一个模型用于组合(combine)其它模型(基模型/基学习器)的技术。即首先训练出多个不同的模型,然后再以之前训练的各个模型的输出作为输入来新训练一个新的模型,从而得到一个最终的模型。一般情况下使用单层的Logistic回归作为组合模型。