总结:https://blog.csdn.net/legendavid/article/details/78904353
GBDT
1. Boosting的最大好处在于,每一步的残差计算其实变相地增大了分错instance的权重,而已经分对的instance则都趋向于0。这样后面的树就能越来越专注那些前面被分错的instance。(残差存在的意义,防止过拟合)
2.Adaboost的方法被实践证明是一种很好的防止过拟合的方法。
3.为什么要用残差。本算法是一个梯度提升算法,该版本直接用残差作为全局最优的绝对方向,并不需要Gradient求解。
4.一方面我们可以从残差的角度来理解,每一棵回归树都是在学习之前的树的残差;另一方面也可以从梯度的角度掌握算法,即每一棵回归树通过梯度下降法学习之前的树的梯度下降值。前者使用残差(残差是全局最优值),后者使用梯度(梯度是局部最优方向),简单一点来讲就是前者每一步都在试图向最终结果的方向优化,后者则每一步试图让当前结果更好一点。由于它依赖残差,损失函数一般固定为反映残差的均方差,因此很难处理纯回归问题之外的问题。而后者求解方法为梯度下降,只要可求导的损失函数都可以使用。
GBDT的适用范围
该版本GBDT几乎可用于所有回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBDT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。
本质上,Shrinkage为每棵树设置了一个weight,累加时要乘以这个weight,但和Gradient并没有关系。
y(1 ~ i) = y(1 ~ i-1) + step * yi
非线性分类器包括:常见的非线性分类器:决策树、RF、GBDT、多层感知机、SVM(高斯核)等。
常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归,SVM(线性核)等。
XGBoost
Xgboost属于梯度提升决策树中的一种。
1.可并行,精度有提升。
XGBoost与GBDT区别:(自我感觉)
对残差的处理方式不同
GBDT把残差作为设置为下一棵树的输入。然后基于回归树进行求解。
而Xgboost把残差融进了损失函数,经过推倒,得到我们在新建一颗树的时候该按照该损失函数进行划分。