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

集成学习:GBDT

热度:14   发布时间:2023-12-06 04:15:37.0

目录

      • 0 简介
      • 1 流程
      • 2 回归
      • 3 分类

0 简介

Boosting的一种 构造样本标签值 通过弱学习器学习新的样本标签
一般用于回归 弱学习器用回归决策树 CART

关键思想:

  • 用负梯度构造新的样本标签
  • 弱学习器来学习新的标签

1 流程

(1)初始化强学习器$$
(2)对于弱学习器 m=1,2,3…M

  • 计算梯度 修改样本标签值为负梯度
    y′=?[?L(y,f(xi))?F(xi)]F(x)=Fm?1(x)y\prime=-[\cfrac{\partial L(y,f(x_i))}{\partial F(x_i)}]_F(x)=F_{m-1}(x)y=?[?F(xi?)?L(y,f(xi?))?]F?(x)=Fm?1?(x)
  • 训练若学习器
    am=arg?min∑i=1N(yi′?βh(x;a))2a_m=arg·min\sum_{i=1}^N{(y_i\prime-\beta h(x;a))^2}am?=arg?mini=1N?(yi??βh(x;a))2
  • 确定系数
    βm=arg?min∑i=1NL(yi,Fm?1(xi)+βh(xi;am))\beta_m=arg·min\sum_{i=1}^NL(y_i,F_{m-1}(x_i)+\beta h(x_i;a_m))βm?=arg?mini=1N?L(yi?,Fm?1?(xi?)+βh(xi?;am?))
    (3)更新强学习器
    Fm(x)=Fm?1(x)+βh(x;am)F_m(x)=F_{m-1}(x)+\beta h(x;a_m)Fm?(x)=Fm?1?(x)+βh(x;am?)

2 回归

大多回归问题使用
以回归来说 损失函数用平方损失
L(y,f(xi))=12(y?f(xi))2L(y,f(x_i))=\cfrac12(y-f(x_i))^2L(y,f(xi?))=21?(y?f(xi?))2
梯度=?(y?f(xi))梯度=-(y-f(x_i))=?(y?f(xi?))

h(x)是弱学习器 β是系数 ama_mam?是h的参数

Fm(x)=Fm?1(x)+βh(x;am)F_m(x)=F_{m-1}(x)+\beta h(x;a_m)Fm?(x)=Fm?1?(x)+βh(x;am?)
Fm(x)≈Fm?1(x)?梯度F_m(x)\approx F_{m-1}(x)-梯度Fm?(x)Fm?1?(x)?
所以
min(?梯度?βh(x;am))2min(-梯度-\beta h(x;a_m))^2min(??βh(x;am?))2

min(y?f(xi)?βh(x;am))2min(y-f(x_i)-\beta h(x;a_m))^2min(y?f(xi?)?βh(x;am?))2
负梯度正好等于残差
也就是说每个弱学习器来拟合之前的残差

3 分类

  相关解决方案