机器学习技法-GBDT算法
课程地址: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算法的更多相关文章
- 【机器学习】--GBDT算法从初始到应用
一.前述 提升是一种机器学习技术,可以用于回归和分类的问题,它每一步产生弱预测模型(如决策树),并加权累加到总模型中:如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的,那么就称为梯度提升(Gr ...
- 机器学习系列------1. GBDT算法的原理
GBDT算法是一种监督学习算法.监督学习算法需要解决如下两个问题: 1.损失函数尽可能的小,这样使得目标函数能够尽可能的符合样本 2.正则化函数对训练结果进行惩罚,避免过拟合,这样在预测的时候才能够准 ...
- 机器学习中的算法-决策树模型组合之随机森林与GBDT
机器学习中的算法(1)-决策树模型组合之随机森林与GBDT 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使 ...
- 《机器学习技法》---GBDT
1 对决策树使用adaboost 对决策树使用adaboost时,有以下几个问题: (1)adaboost每次更新的样本权重如何应用到决策树中? 由于我们不知道决策树的err目标是什么,因此通常的方法 ...
- 机器学习之——集成算法,随机森林,Bootsing,Adaboost,Staking,GBDT,XGboost
集成学习 集成算法 随机森林(前身是bagging或者随机抽样)(并行算法) 提升算法(Boosting算法) GBDT(迭代决策树) (串行算法) Adaboost (串行算法) Stacking ...
- GB和GBDT 算法流程及分析
1.优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回归树,依 ...
- GBDT算法原理深入解析
GBDT算法原理深入解析 标签: 机器学习 集成学习 GBM GBDT XGBoost 梯度提升(Gradient boosting)是一种用于回归.分类和排序任务的机器学习技术,属于Boosting ...
- 机器学习技法课之Aggregation模型
Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...
- 工业级GBDT算法︱微软开源 的LightGBM(R包正在开发....)
看完一篇介绍文章后,第一个直觉就是这算法已经配得上工业级属性.日前看到微软已经公开了这一算法,而且已经发开python版本,本人觉得等hadoop+Spark这些平台配齐之后,就可以大规模宣传啦~如果 ...
随机推荐
- FZU 2090 旅行社的烦恼 floyd 求无向图最小环
题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...
- .NET开发知识体系
记得几年前写过一篇关于.NET开发方面的知识总结,但是随着技术的发展以及自己技术理解的提升,觉得有必要对那篇文章加以更新和完善. 最近在园子里也看到有人写关于.NET知识体系的文章,特别是灵感之源写的 ...
- [示例]NSDictionary编程题-字典的排序应用(iOS5班)
代码? #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepo ...
- Uploadify使用
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示 ...
- iOS Android图标生成器PHP
<?php //修改为你想要的大小 //$sizes = array(16,29,32,36,48,50,57,58,72,76,96,100,114,120,128,144,152); $si ...
- Unity中的Path对应各平台中的Path
OS: Application.dataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.a ...
- Linux中如何让命令在后台运行
1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简 ...
- Javascript arguments详解
今天我们来看看arguments对象及属性.arguments对象不能显式创建,arguments对象只有函数开始时才可用.函数的 arguments 对象并不是一个数组,访问单个参数的方式与访问数组 ...
- SharePoint 2013 开发——构建工作流开发环境
博客地址:http://blog.csdn.net/FoxDave 本篇我们来讲述一下如何搭建SharePoint 2013工作流开发环境. Windows Azure Workflow作为单独的可下 ...
- Visual Studio安装卸载模板
Visual Studio中有两种类型的模板:项目模板和项模板 一.已安装模板: 默认情况下,与产品一起安装的模板位于以下位置: ①\<Visual Studio 安装目录>\Common ...