• 机器学习技法-GBDT算法


    课程地址:https://class.coursera.org/ntumltwo-002/lecture

    之前看过别人的竞赛视频,知道GBDT这个算法应用十分广泛。林在第八讲,简单的介绍了AdaBoost,这一讲会更深入的从优化的角度看AdaBoost,然后引出GBDT算法,最后林对最近几讲的集成学习模型(Aggregation Models)做了个很棒的总结。

    image

    一、RandomForest Vs AdaBoost-DTree

    • RF随机森林算法:通过bootstrapping有放回的抽样获取不同的训练数据Dt,不同的Dt可同时并行化生成多棵决策树最后将多棵决策树‘一人一票’的方式结合生成G。
    • AdaBoost-DTree:通多重赋权reweight(样本权重Ut)的方式获取不同的训练数据Dt,Ut依赖于上一次的迭代的分类结果,决策树之间存在依赖关系,必须串行生成每一棵决策树。最后每一棵决策树通过权值alphat结合生成G。

    image

    • 在AdaBoost-DTree中,为了不修改原来的模型,数据按照样本权重u的比例大小对样本进行sampling,采样后的数据D中也能体现出样本的权重。
    • 直接使用fully grown tree 训练Dt,会产生autocracy,需要剪枝或使用弱决策树算法

    image

    二、从优化的角度看AdaBoost

    1.AdaBoost的指数损失函数(loss function)

    • 林通过指数损失函数,从优化的角度推导了AdaBoost-DTree
    • 样本权重与所有gt在该样本的投票的分数有关,分数越高,权值越小。AdaBoost迭代过程中会降低样本的权重。

    image

    2.下一步是如何根据损失函数找到下一个gt,最后的结论是损失函数的梯度的最大值(steepest descent)。

    下面是推导过程,建议去看视频理解,有点绕。

    搜狗截图20160407203911

    搜狗截图20160407204121

    搜狗截图20160407204250

    三、GBDT(Gradient Boosting Decision Tree)

    1.AdaBoost vs GradientBoost

    这部分是将第二部分的AdaBoost进行推广,误差函数(error function)扩展为任意的。

    image

    2.使用平方误差函数(squared-error)的GDBT,和上面的思路一样求解ht和移动的幅度

    image

    image

    四、模型融合(Aggregation models)的对比、总结

    1.获得不同的gt之后的融合方式的对比

    image

    2.获取gt的方式和融合的方式对比

    image

    image

  • 相关阅读:
    [哈工大操作系统]一、环境配置
    [算法笔记]带权并查集
    C++:Reference to non-static member function must be called
    [算法笔记]并查集
    C++:string.size()比较问题
    [算法笔记]二分总结
    【LeetCode每日一题】2020.10.15 116. 填充每个节点的下一个右侧节点指针
    1Manjaro的安装
    【《你不知道的JS(中卷②)》】一、 异步:现在与未来
    【LeetCode每日一题】2020.7.14 120. 三角形最小路径和
  • 原文地址:https://www.cnblogs.com/wxquare/p/5365481.html
Copyright © 2020-2023  润新知