XGBoost
XGBoost
GBDT算法原理梳理 - 杨航锋的文章 - 知乎
https://zhuanlan.zhihu.com/p/59434537
XGBoost、GBDT超详细推导 - 半杯二锅头的文章 - 知乎
https://zhuanlan.zhihu.com/p/92837676
(十四)通俗易懂理解——GBDT算法原理 - 梦里寻梦的文章 - 知乎
https://zhuanlan.zhihu.com/p/41645263
1. XGBoost与GBDT的区别
GBDT:
它是一种基于boosting增强策略的加法模型,训练的时候采用前向贪心算法进行学习,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值之间的残差。
XGBoost:
在GBDT基础上进行了一系列优化,比如损失函数采用了二阶泰勒展式、目标函数加入正则项、支持并行和缺失值自动处理等,但二者在核心思想上没有大的变化。
相同点:
- 生成树的核心思想及方法相同。
不同点:
- 1.基分类器:XGBoost的基分类器不仅支持CART决策树,还支持线性分类器,可以解决分类和回归问题。
- 2.损失函数:XGBoost对损失函数采用了二阶泰勒展式,GBDT只用了一阶导数信息,并且XGBoost还支持自定义损失函数,但要求损失函数一阶、二阶可导。
- 3.正则化:XGBoost的目标函数加了正则项, 相当于预剪枝,这样学习出来的模型更加不容易过拟合。
- 4.随机选特征:与随机森林类似,XGBoost支持特征随机选取,防止过拟合。
- 5.缺失值处理:对于每棵树中的每个非叶子结点,XGBoost可以自动学习出它的默认分裂方向。如果某个样本该特征值