文章目录
XGBoost
在商业实战中有非常广泛的应用场景,例如金融反欺诈模型、信用卡评分模型等。
XGBoost 核心思想
- 以 CART 回归树为基学习器的
梯度提升
算法 - boosting 集成学习
- 多轮迭代,每轮迭代产生一个弱分类器(对上一轮
残差
进行拟合),每个分类器在上一轮分类器的梯度基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差(欠拟合)的。 - 让损失函数持续下降 --> 模型在不断下降。
数学原理
作为 GBDT 算法的高效实现,XGBoost 算法在如下两个方面做了优化
-
算法本身的优化:XGBoost 算法的损失函数,除了本身的损失外还加上了
正则化
部分,可以控制模型复杂度,防止过拟合,泛化能力更强。
y i ^ = ∑ k = 1 K f k ( x i ) f k ∈ F o b j = ∑ i = 1 n L ( y i , y i ^ ) + ∑ k = 1 K Ω ( f k ) \hat{y_i} = \sum_{k=1}^K f_k(x_i) \qquad f_k \in \mathcal{F} \\ obj = \sum_{i=1}^n \mathcal{L}(y_i, \hat{y_i}) + \sum_{k=1}^K \Omega(f_k) yi^=k=1∑Kfk(xi)fk∈Fobj=i=1∑nL(yi,yi^)+k=1∑KΩ(fk)- 其中, y i ^ \hat{y_i} yi^ 为模型对样本 x i x_i xi 的预测结果
- f