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

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

一、RandomForest Vs AdaBoost-DTree

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

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

二、从优化的角度看AdaBoost

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

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

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

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

三、GBDT(Gradient Boosting Decision Tree)

1.AdaBoost vs GradientBoost

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

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

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

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

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

机器学习技法-GBDT算法的更多相关文章

  1. 【机器学习】--GBDT算法从初始到应用

    一.前述 提升是一种机器学习技术,可以用于回归和分类的问题,它每一步产生弱预测模型(如决策树),并加权累加到总模型中:如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的,那么就称为梯度提升(Gr ...

  2. 机器学习系列------1. GBDT算法的原理

    GBDT算法是一种监督学习算法.监督学习算法需要解决如下两个问题: 1.损失函数尽可能的小,这样使得目标函数能够尽可能的符合样本 2.正则化函数对训练结果进行惩罚,避免过拟合,这样在预测的时候才能够准 ...

  3. 机器学习中的算法-决策树模型组合之随机森林与GBDT

    机器学习中的算法(1)-决策树模型组合之随机森林与GBDT 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使 ...

  4. 《机器学习技法》---GBDT

    1 对决策树使用adaboost 对决策树使用adaboost时,有以下几个问题: (1)adaboost每次更新的样本权重如何应用到决策树中? 由于我们不知道决策树的err目标是什么,因此通常的方法 ...

  5. 机器学习之——集成算法,随机森林,Bootsing,Adaboost,Staking,GBDT,XGboost

    集成学习 集成算法 随机森林(前身是bagging或者随机抽样)(并行算法) 提升算法(Boosting算法) GBDT(迭代决策树) (串行算法) Adaboost (串行算法) Stacking ...

  6. GB和GBDT 算法流程及分析

    1.优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回归树,依 ...

  7. GBDT算法原理深入解析

    GBDT算法原理深入解析 标签: 机器学习 集成学习 GBM GBDT XGBoost 梯度提升(Gradient boosting)是一种用于回归.分类和排序任务的机器学习技术,属于Boosting ...

  8. 机器学习技法课之Aggregation模型

    Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...

  9. 工业级GBDT算法︱微软开源 的LightGBM(R包正在开发....)

    看完一篇介绍文章后,第一个直觉就是这算法已经配得上工业级属性.日前看到微软已经公开了这一算法,而且已经发开python版本,本人觉得等hadoop+Spark这些平台配齐之后,就可以大规模宣传啦~如果 ...

随机推荐

  1. FZU 2090 旅行社的烦恼 floyd 求无向图最小环

    题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...

  2. .NET开发知识体系

    记得几年前写过一篇关于.NET开发方面的知识总结,但是随着技术的发展以及自己技术理解的提升,觉得有必要对那篇文章加以更新和完善. 最近在园子里也看到有人写关于.NET知识体系的文章,特别是灵感之源写的 ...

  3. [示例]NSDictionary编程题-字典的排序应用(iOS5班)

    代码? #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepo ...

  4. Uploadify使用

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示 ...

  5. iOS Android图标生成器PHP

    <?php //修改为你想要的大小 //$sizes = array(16,29,32,36,48,50,57,58,72,76,96,100,114,120,128,144,152); $si ...

  6. Unity中的Path对应各平台中的Path

    OS: Application.dataPath :                    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.a ...

  7. Linux中如何让命令在后台运行

    1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简 ...

  8. Javascript arguments详解

    今天我们来看看arguments对象及属性.arguments对象不能显式创建,arguments对象只有函数开始时才可用.函数的 arguments 对象并不是一个数组,访问单个参数的方式与访问数组 ...

  9. SharePoint 2013 开发——构建工作流开发环境

    博客地址:http://blog.csdn.net/FoxDave 本篇我们来讲述一下如何搭建SharePoint 2013工作流开发环境. Windows Azure Workflow作为单独的可下 ...

  10. Visual Studio安装卸载模板

    Visual Studio中有两种类型的模板:项目模板和项模板 一.已安装模板: 默认情况下,与产品一起安装的模板位于以下位置: ①\<Visual Studio 安装目录>\Common ...