当前位置: 代码迷 >> 综合 >> 集成学习:XGBoost
  详细解决方案

集成学习:XGBoost

热度:91   发布时间:2023-12-06 04:15:24.0

目录

      • 0 简介
      • 1 目标优化函数
      • 2 求解目标优化函数
      • 3 过拟合

0 简介

Boosting的一种 是GBDT的扩展
相比于GBDT :

  • 求解损失函数 二阶展开 牛顿法
  • 损失函数加入正则化项

一般用于回归问题 弱学习器用CART树

1 目标优化函数

yi′y_i\primeyi? 表示预测值
yi,t′y_{i,t}\primeyi,t? 第t次迭代对样本i的预测值
弱学习器 f(x)=wq(x)f(x)=w_{q(x)}f(x)=wq(x)? 其中q(x)把x映射到第i个叶子节点 wi是第i个节点的值
yi,t′=yi,t?1′+ft(xi)y_{i,t}\prime=y_{i,t-1}\prime+f_t(x_i)yi,t?=yi,t?1?+ft?(xi?)
L=∑i=1n[l(yi,yi,t?1′+ft(xi))]+γT+12λw2L=\sum_{i=1}^n[l(y_i,y_{i,t-1}\prime+f_t(x_i))]+\gamma T+\cfrac12\lambda w^2L=i=1n?[l(yi?,yi,t?1?+ft?(xi?))]+γT+21?λw2
最小化L 其中T是叶子节点数 w是所有预测值(叶子结点)的集合 γ和λ是正则化系数
叶子节点数尽量少 预测值尽量小(因为弱分类器预测值是误差 越小越好)
采用牛顿法
L≈∑i=1n[l(yi,yi,t?1′)+gift(xi)+12hift2(xi)]+γT+12λw2L\approx \sum_{i=1}^n[l(y_i,y_{i,t-1}\prime)+g_if_t(x_i)+\cfrac12h_if_t^2(x_i)]+\gamma T+\cfrac12\lambda w^2Li=1n?[l(yi?,yi,t?1?)+gi?ft?(xi?)+21?hi?ft2?(xi?)]+γT+21?λw2
gi=?l(yi,yi,t?1′)?yi′........hi=?2l(yi,yi,t?1′)?2yi′g_i=\cfrac{\partial l(y_i,y_{i,t-1}\prime)}{\partial y_i\prime}........h_i=\cfrac{\partial ^2l(y_i,y_{i,t-1}\prime)}{\partial^2 y_i\prime} gi?=?yi??l(yi?,yi,t?1?)?........hi?=?2yi??2l(yi?,yi,t?1?)?
由于l(yi,yi,t?1′)l(y_i,y_{i,t-1}\prime)l(yi?,yi,t?1?)(上一个强学习器的损失)是常数 所以相当于最小化:
L=∑i=1n[gift(xi)+12hift2(xi)]+γT+12λ∑j=1Twj2L= \sum_{i=1}^n[g_if_t(x_i)+\cfrac12h_if_t^2(x_i)]+\gamma T+\cfrac12\lambda \sum_{j=1}^Tw_j^2L=i=1n?[gi?ft?(xi?)+21?hi?ft2?(xi?)]+γT+21?λj=1T?wj2?
$$$$
差点推导公式

2 求解目标优化函数

(1)假设q(x)决策树结构确定 获得所有叶子结点值
ax2+bx最小值时2ax+b=0所以x=?b2aax^2+bx 最小值时 2ax+b=0所以x=-\cfrac{b}{2a}ax2+bx2ax+b=0x=?2ab?
wj?=?∑i∈Ijgi[∑i∈Ijhi]+λw_j^*=-\cfrac{\sum_{i\in I_j}g_i}{[\sum_{i\in I_j}h_i]+\lambda}wj??=?[iIj??hi?]+λiIj??gi??
(2)有了叶子结点值 如何将x与叶子对应
确定最佳分裂 i=q(x)
ax2+bxandx=?b2a...原式=?b24aax^2+bx\quad and \quad x=-\cfrac b{2a}...原式=-\cfrac {b^2}{4a}ax2+bxandx=?2ab?...=?4ab2?
所以损失函数等于:
Lq=∑j=1T[?(∑i∈Ijgi)22([∑i∈Ijhi]+λ)]+γTL_q=\sum_{j=1}^T[-\cfrac{(\sum_{i\in I_j}g_i)^2}{2([\sum_{i\in I_j}h_i]+\lambda)}]+\gamma TLq?=j=1T?[?2([iIj??hi?]+λ)(iIj??gi?)2?]+γT
可以将损失函数LqL_qLq?作为决策树划分的一个度量(类似熵、GINI)
样本III划分为I左I_左I?I右I_右I?
旧:?12总+γT旧:-\cfrac12总+\gamma T?21?+γT
新:?12左?12右+γ(T+1)新:-\cfrac12左-\cfrac12右+\gamma (T+1)?21??21?+γ(T+1)
所以分裂规则是最大化[旧-新] 也就是最大化以下:
Lsplit=12(左+右?总)?γL_{split}=\cfrac12(左+右-总)-\gamma Lsplit?=21?(+?)?γ

3 过拟合

(1)权重收缩
训练好弱分类器决策树后 将其预测值乘β
(2)列采样
训练决策树时 使用一部分特征