zoukankan      html  css  js  c++  java
  • 《机器学习技法》---GBDT

    1 对决策树使用adaboost

    对决策树使用adaboost时,有以下几个问题:

     (1)adaboost每次更新的样本权重如何应用到决策树中?

      由于我们不知道决策树的err目标是什么,因此通常的方法是根据权重对样本采样,然后给决策树训练,这样我们不需要修改决策树算法本身,样本的权重信息就传进去了。

    (2)如果处理某个决策树的ε达到0的情况?

      达到0时,相应的投票数变为无穷大,因此我们需要对树的强度做限制,使得ε不会为0。通常简单的做法是限制树的高度。

      特别的,当树的高度被限制为1时,且不纯度定义为二分类错误时,decision Tree等效为decision stump:
      

    因此adaboost-Dtree就是:

     

    2 深入看Adaboost

    Adaboost是一个特殊的gradient boosting,它有自己的损失函数叫做errADA:

    它也是01err的一个上界。

    把adaboost写成gradient boosting的形式:

    3 Gradient Boosting

    gradient Boosting是Adaboost的延伸。

    已知前t-1轮的子模型和投票,在第t轮,选取合适的η和h(x)使得加上该轮后的总模型的损失函数最小,这就是gradient boosting:

    如果这里的err是平方误差,有如下推导:

    对h的大小做限制,后续用η控制大小,这里限制的方法是加一个平方项作惩罚项:

    可以看出,这里是最小化平方误差,也就是在残差(s-y)上做回归。这里我们用回归树来做。

    得到了h之后,接下来是选择合适的η:

     

     也就是相当于对于残差和gt转换过的特征做单变量线性回归。

    因此,我们的GBDT算法流程如下:

     

  • 相关阅读:
    将16进制的颜色转为rgb颜色
    css3选择
    css写复选框
    关于瀑布流
    关于CSS3属性transition的触发
    单行文本两端对齐
    jQuery插件——下拉选择框
    CSS3帧动画
    Vuejs自定义全局组件--loading
    Sublime text开发Quick-Cocos2d-x-3.x环境搭建(Windows)
  • 原文地址:https://www.cnblogs.com/coldyan/p/6625646.html
Copyright © 2011-2022 走看看