一文掌握XGBoost核心原理

本文详细解析XGBoost的核心思想,包括整体思路、梯度提升树(GBDT)的训练范式、目标函数、优化求解方法。XGBoost通过二阶泰勒展开近似目标函数,简化优化过程,并通过正则化、缩减步长、特征子抽样等手段防止过拟合。此外,还介绍了特征重要性和模型评估指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XGBoost是经典的提升树学习框架,其配套论文和PPT分享也相当经典,本文简单梳理其思路,原文见XGBoost原理简介

整体思路

和一般提升模型一样,提升树模型也遵循相同的范式

  • 采用加法模型「forward stage-wise manner」
  • 每轮引入一weak learner「此处是一棵CART树」
  • 学习之前weak learners的不足「用梯度表征」

同时要考虑过拟合等问题「overfitting is everywhere」。

Tree Ensemble

遵循李航老师统计学习三要素公式

方 法 = 模 型 + 策 略 + 算 法 方法=模型+策略+算法 =++

假设空间「模型」

Tree Ensemble基本思想是将多棵树的结果融合作为最终输出,示意图如下

paper-xgboost-tree-ensemble

不难看出,模型的假设空间是一系列CART树的集成,输出为

y ^ i = ∑ k = 1 K f k ( x i ) , f k ∈ F \hat y_i = \sum_{k=1}^{K} f_k(x_i), \quad f_k \in F y^i=k=1Kfk(xi),fkF

其模型参数为 K K K颗树

⊝ = { f 1 , f 2 , … , f K } \circleddash = \{f_1, f_2, \dots, f_K\} ={ f1,f2,,fK}

目标函数「策略」

模型假设有了,另一个核心元素就是目标函数,和一般监督模型一样

O b j ( ⊝ ) = L ( ⊝ ) + Ω ( ⊝ ) Obj(\circleddash)=L(\circleddash)+\Omega(\circleddash) Obj()=L()+Ω()

目标函数分两部分「Bias-variance tradeoff is everywhere

  • Training Loss measures how well model fit on training data
  • Regularization measures complexity of model

具体到Tree Ensemble,其目标函数为

O b j = ∑ i = 1 n l ( y i , y ^ i ) + ∑ k = 1 K Ω ( f k ) Obj = \sum_{i=1}^{n} l(y_i, \hat y_i) + \sum_{k=1}^{K}\Omega(f_k) Obj=i=1nl(yi,y^i)+k=1KΩ(fk)

优化求解「算法」

模型参数的最终求解。参数 ⊝ = { f 1 , f 2 , … , f K } \circleddash = \{f_1, f_2, \dots, f_K\} ={ f1,f2,,fK} K K K颗树,无法用SGD类似方法优化求解,因为不是 R d R^d Rd空间上的数值向量。一般采用Additive Training(Boosting)的思想求解。

Gradient Boosting

Tree Ensemble章节回答了what we are learning的问题,Gradient Boosting章节要回答how do we learn的问题。

Additive Traing范式

采用Additive Training(Boosting)的模式,即每一轮学习一颗新树 f t f_t ft

paper-xgboost-boosting

学习一颗新树

问题是每一轮 y ^ i ( t ) = y ^ i ( t − 1 ) + f t ( x i ) \hat y_i^{(t)} = \hat y_i^{(t-1)} + f_t(x_i) y^i(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值