注:上接GBDT和XGBOOST算法推导和流程详解(PART-1)
XGBOOST算法原理及相应流程
XGBOOST相比GBDT有以下有点和改进:
1)分布式-特征切分
2)稀疏感知-缺失值直接当做特征处理
3)加权分位点进行-树构建节点分割
4)泰勒二阶导数-Newtons Methods更新方法
5)防止过拟合的方法-正则+shrinkage+subsampling
6)系统设计上更加优化
基本原理
XGBOOST-Extreme Gradient Boosting,从名字就可以看出,它利用了梯度提升的思想,但是做的更加极致,这个是因为它使用了Newton法进行更新每棵树(泰勒二阶展开)。
XGBOOST算法的流程为:
//#XGBOOST算法流程
第一步:确定损失函数,泰勒二阶展开,求解最优树权重,继而求出最优树结构和分裂标准函数。
第二步:按照分裂函数逐步一棵树一棵树去生成,值的注意的是,生成的每棵树是利用Newton法迭代的。
第三步:将每棵树进行累加,作为最终生成的数(损失最小,达到最优)。
算法结束