- 联邦学习:算法详解与系统实现
- 薄列峰等
- 486字
- 2025-02-17 23:05:09
4.3.1 XGBoost算法
XGBoost是陈天奇等人开发的一个开源机器学习项目,是一种监督学习算法。其原理是对多个弱分类器的结果通过Boosting进行加权并得到强分类器,因而属于梯度提升的树模型。XGBoost力争在速度和效率上将GBDT算法发挥到极致,高效地实现了GBDT算法并进行了算法和工程上的许多改进,所以又称为X(Extreme)GBoosted Tree。其在实际中被广泛应用,取得了不错的成绩。
XGBoost基于分类与回归树(Classification and Regression Tree,CART)实现,从名字就可以看出,它既可以处理分类也可以处理回归问题。CART通过对样本进行划分来不断生成二叉树:首先按特征值对当前树节点上的样本数据排序,然后对排序的特征数据进行切分,划分成左右子树。分裂决策的过程就是选出最佳切分点的过程,其对应的特征和取值将作为树节点分裂依据。CART的最佳切分点由某个评估指标确定。XGBoost算法的损失函数(如公式(4.3)所示)经过合并、变形之后,只与每个叶节点上全部样本的一阶导数之和和二阶导数之和有联系。

对于一次分裂来说,它对整体训练目标的影响就是,从使用当前树节点来计算损失函数变为使用分裂之后的左右两个子节点进行计算。因此,分裂的评估指标就是用分裂后的分数减去未分裂时树节点的分数。我们将其称为分裂增益,公式如下:
