1、简单介绍GBDT
GBDT(Gradient Boosting Decision Tree)梯度提升决策树,理解为梯度提升+决策树。利用最速下降的近似方法,利用损失函数的负梯度拟合基学习器。利用损失函数的负梯度,替代提升树算法中的残差,去拟合一个回归树。回归和分类基学习器都是CART回归树,区别在于分类问题使用softmax进行映射。其中CART回归树是以损失函数作为评价指标,又引入了剪枝过程的生成树算法。
GBDT如何构建特征:将样本输入到GBDT中,按照所有CART树的叶结点进行编码,得到该样本的组合特征。
2、其中基分类器CART回归树,节点的分裂标准是什么?
- 原始决策树节点分裂准则:节点内特征数量阈值,小于阈值,停止分裂
- 基于ID3算法的决策树节点分裂准则:信息增益,越大越好
- 基于C4.5算法的决策树节点分裂标准:信息增益比,越大越好
- 基于CART算法的决策树节点分裂标准:回归树,采用平方根误差最小化准则,分类树,采用基尼指数。越小越好
3、RF和GBDT的区别
相同点:
- 都是由多棵树组成,最终的结果都是由多棵树一起决定。
不同点:
- 集成学习:RF属于bagging思想,而GBDT是boosting思想
- 偏差-方差权衡:RF不断的降低模型的方差,而GBDT不断的降低模型的偏差
- 训练样本:RF每次迭代的样本是从全部训练集中有放回抽样形成的,而GBDT每次使用全部样本
- 并行性:RF的树可以并行生成,而GBDT只能顺序生成(需要等上一棵树完全生成)
- 最终结果:RF最终是多棵树进行多数表决(回归问题是取平均),而GBDT是加权融合
- 数据敏感性:RF对异常值不敏感,而GBDT对异常值比较敏感
- 泛化能力:RF不易过拟合,而GBDT容易过拟合
(4)决策树如何进行剪枝
分为预剪枝和后剪枝。
预剪枝的思想是在树中结点进行扩展之前,先计算当前的划分是否带来模型泛化能力的提升,如果不能,则不再继续生长子树。预剪枝对何时停止决策树的生长有几种方法
- 当树达到一定深度时,停止树的生长
- 当达到当前结点的样本数量小于某个阈值的时候,停止树的生长
- 计算每次分裂时对测试机的准确率提升,当小于某个阈值的时候,不再继续扩展
后剪枝的思想是让算法生成一颗完全生长的决策树,然背后从最底层向上计算是否剪枝。剪枝过程将子树删除,用一个叶子结点替代。相比于预剪枝,后剪枝方法通常可以得到泛化能力更强的决策树,但时间开销更大。常见的后剪枝方法有
- 代价复杂度剪枝(CCP)
- 错误率降低剪枝(REP)
- 悲观剪枝(PEP)
- 最小误差剪枝(MEP)
- CVP(Critical Value Pruning)
- OPP(Optimal Pruning)