机器学习总结二:boosting之GBDT、XGBT原理公式推导

一、Bagging之决策树、随机森林原理与案例

二、boosting之GBDT、XGBT原理推导与案例

三、SVM原理推导与案例

四、逻辑回归与反欺诈检测案例

五、聚类之K-means


Boosting

1. 简介

  • 通过在数据上构建多个弱评估器,汇总所有弱评估器的建模结果,以取得比单个模型更好的分类或回归表现。
  • 加法模型,前向分步计算学习。

2. 基本元素

  • 弱评估器f(x):一般为决策树(cart树),不同boosting算法建立新树的过程不同

  • 损失函数L(x,y):衡量模型预测结果与真实结果的差异

  • 集成结果H(x):汇总所用弱评估器的结果进行输出

3. 算法提升流程

    1. 依据上一个弱评估器集成的结果,计算损失函数L(x,y)

L ( y , ∑ k = 1 t − 1 f k ( x ) ) L(y,\sum_{k=1}^{t-1} f_k(x)) L(y,k=1t1fk(x))

    1. 使用L(x,y)自适应的影响下一个弱评估器的构建

f k = t ( x ) f_{k=t}(x) fk=t(x)

    1. 更新弱评估器集成的结果

H ( x ) = ∑ k = 1 t − 1 f k ( x ) + f ( x ) t H(x)=\sum_{k=1}^{t-1} f_k(x)+f(x)_t H(x)=k=1t1fk(x)+f(x)t

注意:

  • 各种boosting算法的不同之处在于使用不同的方式影响后续评估器的构建

4. GBDT原理

  • 4.1 优化目标:新建的树使目标函数越来越小
  • 4.2 泰勒一阶展开式

f ( x + △ x ) ≈ f ( x ) + f ′ ( x ) △ x f(x+\triangle x) \approx f(x)+f'(x)\triangle x f(x+x)f(x)+f(x)x

  • 4.3 GBDT目标函数求解过程

    1. 设定目标函数
      o b j = ∑ i = 1 n L ( y i , y i ^ ) obj =\sum_{i=1}^nL(y_i,\widehat{y_i}) obj=i=1nL(yi,yi )

      n : 所 有 样 本 的 个 数 ; i : 代 表 每 个 样 本 代 入 树 模 型 n: 所有样本的个数;i:代表每个样本代入树模型 n:i:

    2. 代入树模型
      o b j = ∑ i = 1 n L ( y i , f ( x i ) t − 1 + f ( x i ) t ) obj =\sum_{i=1}^nL(y_i,f(x_i)_{t-1}+f(x_i)_t) obj=i=1nL(yi,f(xi)t1+f(xi)t)

      f ( x i ) t − 1 : 代 表 前 t − 1 棵 树 的 结 果 ; f ( x i ) t : 代 表 本 轮 要 新 建 的 树 模 型 f(x_i)_{t-1}:代表前t-1棵树的结果;f(x_i)_t :代表本轮要新建的树模型 f(xi)t1:t1f(xi)t:

    3. 将目标函数进行一阶泰勒展开
      o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t ] obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t] obji=1n[L(yi,f(xi)t1)+δf(xi)t1δL(yi,f(xi)t1)f(xi)t]

      f ( x i ) t : 相 当 于 泰 勒 泰 勒 展 开 式 中 的 △ x f(x_i)_t:相当于泰勒泰勒展开式中的\triangle x f(xi)t:x

    4. 因为L(y_i,f(x_i)_{t-1})是定值,新树要使obj减小的必要条件为:
      δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t ≤ 0 \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t \leq 0 δf(xi)t1δL(yi,f(xi)t1)f(xi)t0

    5. 上述不等式成立的充分非必要条件为:
      f ( x i ) t = − δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 f(x_i)_t = -\frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} f(xi)t=δf(xi)t1δL(yi,f(xi)t1)

      即 建 立 的 新 树 拟 合 结 果 为 前 t − 1 轮 预 测 结 果 对 应 的 目 标 函 数 的 负 梯 度 即建立的新树拟合结果为前t-1轮预测结果对应的目标函数的负梯度 t1

    6. 最终新树模型生成要求

      • 新树模型拟合上一轮结果的负梯度

      • 使用基尼系数或信息熵,进行最佳分裂点

5. XGBT原理

  • 5.1 优化目标:新建的树使目标函数越来越小
  • 5.2 泰勒二阶展开式

f ( x + △ x ) ≈ f ( x ) + f ′ ( x ) △ x + 1 2 f ′ ′ ( x ) △ x 2 f(x+\triangle x) \approx f(x)+f'(x)\triangle x + \frac{1}{2} f''(x)\triangle x^2 f(x+x)f(x)+f(x)x+21f(x)x2

  • 5.3 XGBT目标函数求解过程

    1. 设定目标函数
      o b j = ∑ i = 1 n L ( y i , y i ^ ) + ∑ k = 1 t Ω ( f k ) obj =\sum_{i=1}^nL(y_i,\widehat{y_i})+\sum_{k=1}^t\Omega(f_k) obj=i=1nL(yi,yi )+k=1tΩ(fk)

      i : 代 表 每 个 样 本 ; n : 代 表 样 本 个 数 ; k : 代 表 每 一 个 树 模 型 Ω : 代 表 第 K 颗 树 的 复 杂 度 i:代表每个样本; n:代表样本个数; k:代表每一个树模型 Ω:代表第K颗树的复杂度 i:n:k:ΩK

    2. 代入树模型f(x)
      o b j = ∑ i = 1 n L ( y i , f ( x i ) t − 1 + f ( x i ) t ) + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t obj =\sum_{i=1}^nL(y_i,f(x_i)_{t-1}+f(x_i)_t)+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t obj=i=1nL(yi,f(xi)t1+f(xi)t)+k=1t1Ω(fk)+Ωft

    3. 使用二阶泰勒展开优化目标函数
      o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t + 1 2 δ ′ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f 2 ( x i ) t ] + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t+\frac{1}{2}\frac{\delta''L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f^2(x_i)_t]+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t obji=1n[L(yi,f(xi)t1)+δf(xi)t1δL(yi,f(xi)t1)f(xi)t+21δf(xi)t1δL(yi,f(xi)t1)f2(xi)t]+k=1t1Ω(fk)+Ωft

    4. 公式太长,看着太复杂,设定:
      g i = δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 g_i= \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} gi=δf(xi)t1δL(yi,f(xi)t1)

      h i = δ ′ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 h_i= \frac{\delta''L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} hi=δf(xi)t1δL(yi,f(xi)t1)

      则 : o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + g i ∗ f ( x i ) t + 1 2 h i ∗ f 2 ( x i ) t ] + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t 则:obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ g_i*f(x_i)_t+\frac{1}{2}h_i*f^2(x_i)_t]+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t obji=1n[L(yi,f(xi)t1)+gif(xi)t+21hif2(xi)t]+k=1t1Ω(fk)+Ωft

      ∑ k = 1 t − 1 Ω ( f k ) : 前 t − 1 颗 树 的 模 型 夫 复 杂 度 , 定 值 ; L ( y i , f ( x i ) t − 1 ) : 第 t − 1 轮 迭 代 后 的 损 失 , 定 值 \sum_{k=1}^{t-1}\Omega(f_k):前t-1颗树的模型夫复杂度,定值;L(y_i,f(x_i)_{t-1}):第t-1轮迭代后的损失,定值 k=1t1Ω(fk):t1L(yi,f(xi)t1)t1

    5. 去除常数项(不影响求解最小目标函数)
      o b j ≈ ∑ i = 1 n [ g i ∗ f ( x i ) t + 1 2 h i ∗ f 2 ( x i ) t ] + Ω f t obj \approx \sum_{i=1}^n[g_i*f(x_i)_t+\frac{1}{2}h_i*f^2(x_i)_t]+\Omega f_t obji=1n[gif(xi)t+21hif2(xi)t]+Ωft

    6. 每颗树模型的模型结果为叶子节点上的权重
      f ( x i ) t = w q ( x i ) f(x_i)_t=w_{q(x_i)} f(xi)t=wq(xi)

      w q ( x i ) : 样 本 x i 所 在 树 模 型 叶 子 节 点 的 权 重 w_{q(x_i)}:样本x_i所在树模型叶子节点的权重 wq(xi):xi

      则 : o b j ≈ ∑ i = 1 n [ g i ∗ w q ( x i ) + 1 2 h i ∗ w q ( x i ) 2 ] + Ω f t 则:obj \approx \sum_{i=1}^n[g_i*w_{q(x_i)}+\frac{1}{2}h_i*w^2_{q(x_i)}]+\Omega f_t obji=1n[giwq(xi)+21hiwq(xi)2]+Ωft

    7. 设定树模型复杂度
      Ω f t = γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 \Omega f_t =\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 Ωft=γT+21λj=1Twj2

    T : 叶 子 节 点 的 个 数 T:叶子节点的个数 T:

    W j : 每 个 叶 子 的 权 重 的 平 方 , L 2 正 则 化 Wj:每个叶子的权重的平方,L2正则化 WjL2

    则 : o b j ≈ ∑ i = 1 n [ g i ∗ w q ( x i ) + 1 2 h i ∗ w q ( x i ) 2 ] + γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 则:obj \approx \sum_{i=1}^n[g_i*w_{q(x_i)}+\frac{1}{2}h_i*w^2_{q(x_i)}]+\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 obji=1n[giwq(xi)+21hiwq(xi)2]+γT+21λj=1Twj2

    1. 不同样本落在同一个叶子节点上预测得分是一样的
      ∑ i = 1 n w q ( x i ) = ∑ j = 1 T w j \sum_{i=1}^nw_{q(x_i)}=\sum_{j=1}^Tw_j i=1nwq(xi)=j=1Twj

      ∑ i = 1 n g i = ∑ i ∈ I j g i − 每 一 个 叶 子 节 点 上 样 本 的 一 阶 导 数 和 \sum_{i=1}^ng_i=\sum_{i\in I_j}g_i- 每一个叶子节点上样本的一阶导数和 i=1ngi=iIjgi

      ∑ i = 1 n h i = ∑ i ∈ I j h i − 每 一 个 叶 子 节 点 上 样 本 的 二 阶 导 数 和 \sum_{i=1}^nh_i=\sum_{i\in I_j}h_i-每一个叶子节点上样本的二阶导数和 i=1nhi=iIjhi

      则 : o b j ≈ ∑ j = 1 T [ w j ( ∑ i ∈ I j g i ) + 1 2 w j 2 ( ∑ i ∈ I j h i ) ] + γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 则:obj \approx \sum_{j=1}^T[w_j(\sum_{i\in I_j}gi)+\frac{1}{2}w^2_j(\sum_{i\in I_j}hi)]+\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 objj=1T[wj(iIjgi)+21wj2(iIjhi)]+γT+21λj=1Twj2

    2. 并模型复杂度和损失函数
      o b j ≈ ∑ j = 1 T [ w j ( ∑ i ∈ I j g i ) + 1 2 w j 2 ( ( ∑ i ∈ I j h i ) + λ ) ) ] + γ T obj \approx \sum_{j=1}^T[w_j(\sum_{i\in I_j}gi)+\frac{1}{2}w^2_j((\sum_{i\in I_j}hi)+\lambda))]+\gamma T objj=1T[wj(iIjgi)+21wj2((iIjhi)+λ))]+γT

    3. 简化目标函数
      设 G j = ∑ i ∈ I j g i 叶 子 节 点 J 所 包 含 的 所 用 样 本 一 阶 导 累 计 之 和 , 是 常 量 设G_j=\sum_{i\in I_j}gi 叶子节点J所包含的所用样本一阶导累计之和,是常量 Gj=iIjgiJ

      设 H j = ∑ i ∈ I j h i 叶 子 节 点 J 所 包 含 的 所 用 样 本 二 阶 导 累 计 之 和 , 是 常 量 设H_j=\sum_{i\in I_j}hi 叶子节点J所包含的所用样本二阶导累计之和,是常量 Hj=iIjhiJ

      则 : o b j ≈ ∑ j = 1 T [ w j G j + 1 2 w j 2 ( H j + λ ) ] + γ T 则:obj \approx \sum_{j=1}^T[w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda)]+\gamma T objj=1T[wjGj+21wj2(Hj+λ)]+γT

    4. 对wj求一阶导,求obj极值(最小二乘法)
      δ ′ ( w j G j + 1 2 w j 2 ( H j + λ ) ) δ w j = G j + w j ( H j + λ ) = 0 \frac{\delta'(w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda))}{\delta w_j}=G_j+w_j(H_j+\lambda)=0 δwjδ(wjGj+21wj2(Hj+λ))=Gj+wj(Hj+λ)=0

      得 : w j = − G j H j + λ 得:w_j=-\frac{G_j}{H_j+\lambda} wj=Hj+λGj

    5. 简化后obj带入wj
      o b j ≈ ∑ j = 1 T [ w j G j + 1 2 w j 2 ( H j + λ ) ] + γ T = − 1 2 ∑ j = 1 T G j 2 H j + λ + γ T obj \approx \sum_{j=1}^T[w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda)]+\gamma T=-\frac{1}{2}\sum_{j=1}^T\frac{G^2_j}{H_j+\lambda}+\gamma T objj=1T[wjGj+21wj2(Hj+λ)]+γT=21j=1THj+λGj2+γT

      最 终 目 标 函 数 只 与 一 阶 导 和 二 阶 导 、 树 的 节 点 个 数 相 关 , 又 叫 结 构 分 数 最终目标函数只与一阶导和二阶导、树的节点个数相关,又叫结构分数 ,

  • 5.4 使用贪心思想求解最优的一棵新树,即每一节点分叉最优

    1. 某个节点是否继续分叉,计算分叉后的节点结构分数是否小于分裂前,类似信息增益

    g a i n = − 1 2 G L 2 H L + λ + γ − 1 2 G R 2 H R + λ + γ − ( − 1 2 G l 2 + G R 2 H L + H R + λ + γ ) < 0 gain = -\frac{1}{2}\frac{G^2_L}{H_L+\lambda}+\gamma -\frac{1}{2}\frac{G^2_R}{H_R+\lambda}+\gamma-(-\frac{1}{2}\frac{G^2_l+G^2_R}{H_L+H_R+\lambda}+\gamma)<0 gain=21HL+λGL2+γ21HR+λGR2+γ(21HL+HR+λGl2+GR2+γ)<0

    1. 去除符号
      g a i n = 1 2 [ G L 2 H L + λ + G R 2 H R + λ − G l 2 + G R 2 H L + H R + λ ] − γ > 0 gain = \frac{1}{2}[\frac{G^2_L}{H_L+\lambda} +\frac{G^2_R}{H_R+\lambda}-\frac{G^2_l+G^2_R}{H_L+H_R+\lambda}]-\gamma>0 gain=21[HL+λGL2+HR+λGR2HL+HR+λGl2+GR2]γ>0

    附录:xgbt手动推导
    原作者链接(https://zhuanlan.zhihu.com/p/511130662)
    机器学习总结二:boosting之GBDT、XGBT原理公式推导_第1张图片机器学习总结二:boosting之GBDT、XGBT原理公式推导_第2张图片
    机器学习总结二:boosting之GBDT、XGBT原理公式推导_第3张图片
    机器学习总结二:boosting之GBDT、XGBT原理公式推导_第4张图片

你可能感兴趣的:(机器学习,算法,boosting)