GBDT和XGBoost(决策树、Random Forest、Boosting、Adaboot)的区别是什么【机器学习面试题】

今天爱分享给大家带来GBDT和XGBoost(决策树、Random Forest、Boosting、Adaboot)的区别是什么【机器学习面试题】,希望能够帮助到大家。
原本分类任务的0/1损失函数;
GBDT属于Boosting的优秀代表, 对函数残差近似值进行梯度下降, 用CART回归树做学习器, 集成为回归模型;
xgboost属于Boosting的集大成者, 对函数残差近似值进行梯度下降, 迭代时利用了二阶梯度信息, 集成模型可分类也可回归. 由于它可在特征粒度上并行计算, 结构风险和工程实现都做了很多优化, 泛化, 性能和扩展性都比GBDT要好。

关于决策树,这里有篇《决策树算法》(链接:http://blog.csdn.net/v_july_v/article/details/7577684)。而随机森林Random Forest是一个包含多个决策树的分类器。至于AdaBoost,则是英文”Adaptive Boosting”(自适应增强)的缩写,关于AdaBoost可以看下这篇文章《Adaboost 算法的原理与推导》。GBDT(Gradient Boosting Decision Tree),即梯度上升决策树算法,相当于融合决策树和梯度上升boosting算法。
引用自:@AntZ

xgboost类似于gbdt的优化版,不论是精度还是效率上都有了提升。与gbdt相比,具体的优点有:
1.损失函数是用泰勒展式二项逼近,而不是像gbdt里的就是一阶导数
2.对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性
3.节点分裂的方式不同,gbdt是用的gini系数,xgboost是经过优化推导后的

人已赞赏
Python

GBDT和XGBoost(决策树、Random Forest、Boosting、Adaboot)的区别是什么【机器学习面试题】

2020-11-23 15:57:13

Python

xgboost要用泰勒展开的原因是什么【机器学习面试题】

2020-11-23 16:09:29

'); })();