zoukankan      html  css  js  c++  java
  • 机器学习:集成算法

    GBDT(Gradient Boosting Decison Tree):梯度提升决策树

    GBDT 的弱学习器通常使用 CART 回归树

    GBDT 的核心在于,每棵树学的是之前所有树的结论和的残差,比如 A 的年龄 18 岁,第一棵树依据特征值预测 12 岁,差 6 岁,即残差为 6 岁,那么第二棵树把 A 的年龄 Y 设为 6 岁,如果第二棵树依据特征值预测 6 岁,那累加两棵树的结论就是 A 的真实年龄,如果第二棵树的结论是 5 岁,则 A 仍存在 1 岁的残差,第三棵树里 A 的年龄 Y 变成 1 岁,然后继续训练下一棵树
      
    设有样本数据 ( ormalsize (x_{i}, y_{i})_{i=1}^{n})
    j 棵树记为 ( ormalsize h_{j}(x))
    则由 m 棵树组成的 GBDT 输出为
      
      (large y_{i} = f_{m}(x_{i}) = f_{m-1}(x_{i}) + h_{m}(x_{i}) = sum_{j=1}^{m}h_{j}(x_{i}))
      
    注意:每棵树都接收相同的 X 值
      
    通常 GBDT 使用负梯度构建下一棵树要预测的 Y 值,设 ( y_{i(m)}) 是第 m 棵树要预测的值
      
      (Large y_{i(m)} = -frac{partial L(y_{i}, f_{m-1}(x_{i}))}{partial f_{m-1}(x_{i})})
      
    这样得出的 Y 值也称为伪残差

    以上的简单例子用的是均方损失函数
      
      (large L(y_{i}, f_{m-1}(x_{i})) = frac{1}{2}(y_{i} - f_{m-1}(x_{i}))^{2})
      
    对应的负梯度是
      
      (Large y_{i(m)} = -frac{partial L(y_{i}, f_{m-1}(x_{i}))}{partial f_{m-1}(x_{i})}=y_{i} - f_{m-1}(x_{i}) = y_{i}-sum_{j=1}^{m-1}h_{j}(x_{i}))

    这个伪残差结果刚好是真残差

    Shrinkage(收缩)

    给每棵树一个权值进行加权求和,Shrinkage 能减少过拟合是经验证明的,但没有理论证明
      
      (large y_{i} = f_{m}(x_{i}) = f_{m-1}(x_{i}) + alpha_{m}h_{m}(x_{i}) = sum_{j=1}^{m}alpha_{j}h_{j}(x_{i}))

    分类

    GBDT 本质是回归问题,要用于分类需要将分类转化为回归
    比如通过逻辑回归函数将结果限制在 0~1 之间,代表两种分类的概率


  • 相关阅读:
    angular笔记_6
    angular笔记_5(全选/反选)
    angular笔记_4(函数)
    angular笔记_3
    angular笔记_2
    常用Sql语句
    IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误
    #前端#文字、图像等元素居中方式之
    nginx如何设置禁止访问文件或文件夹
    git克隆和上传项目
  • 原文地址:https://www.cnblogs.com/moonlight-lin/p/12393336.html
Copyright © 2011-2022 走看看