zoukankan      html  css  js  c++  java
  • 机器学习技法-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

  • 相关阅读:
    P2890 [USACO07OPEN]Cheapest Palindrome G 题解
    「NOIP2021模拟赛 By JXC C」位运算 题解
    AT5759 ThREE 题解
    P7532 [USACO21OPEN] Balanced Subsets P 题解
    linux下的pdf分割合并软件
    Python小练习 SDUT 2521 出现次数
    小问题备查持续更新
    Python小练习自动登录人人发送消息并返回好友列表
    Debian系使用小红点
    linux权限问题学习总结
  • 原文地址:https://www.cnblogs.com/wxquare/p/5365481.html
Copyright © 2011-2022 走看看