【CART与GBDT】
一、CART(分类回归树)
1.思想:
一种采用基尼信息增益作为划分属性的二叉决策树。基尼指数越小,表示纯度越高。
2.回归:
每个节点都有一个预测值,预测值等于属于该节点的所有样例的平均值,分支时,选择每个属性的每个阈值的最好分割点,衡量的标准是最小化均方差。
训练:对训练样本的第i(1<=i<=n)个属性,穷举每个分割点,找到均方差最小的分割点进行分割,该节点的值设为落到该节点的训练样本的平均值,直到不可分或者到一定高度或者属性使用完或者均方差不下降。
测试:对测试样本按照训练时的分割点进行下落,落到叶节点,叶节点的平均值即为预测值。
二、GBDT(梯度提升决策树)
1.原理:
用多棵回归树(或多个弱分类器)进行集成,其中的多棵树不是独立的,而是后面的树在前者的基础上学习误差,所有树的结果加起来是预测得到的结果。弱分类器一般采用CART。
2.过程:
原始回归树:
GBDT:
3.依据:
防止过拟合;
残差计算变相增大了分错样本的权重,分对的趋于0,这样后续的树就能专注于学习分错的样本;
每一步都用残差作为全局最优的梯度方向,并没有真实计算梯度;
每一次都走一小步,逐渐逼近目标,比每次都走一大步逼近目标更能防止过拟合。
4.优缺点:
优点:鲁棒性比较好,准确率比较高。
缺点:弱分类器间存在依赖关系,无法并行训练。
5.问题:
(1)训练过程:
gbdt通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练,通过降低偏差来不断提高最终分类器的精度。
(2)如何选择特征:
如CART,对每个节点的每个切分点进行遍历,选择基尼指数最小的。
(3)如何构建特征:
利用gbdt去产生特征的组合,以叶子结点为基,在基下的表示即为特征。
(4)如何用于分类:
针对样本 X 每个可能的类都训练一个分类回归树。
6.参考:
https://www.cnblogs.com/peizhe123/p/6105696.html
https://www.cnblogs.com/pinard/p/6140514.html
https://www.cnblogs.com/ModifyRong/p/7744987.html
三、Xgboost
1.思想:
Xgboost是GB算法的高效实现,xgboost中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear)
2.区别:
(1)xgboost在目标函数中显示的加上了正则化项,基学习为CART时,正则化项与树的叶子节点的数量T和叶子节点的值有关。
(2)GB中使用Loss Function对f(x)的一阶导数计算出伪残差用于学习生成fm(x),xgboost不仅使用到了一阶导数,还使用二阶导数。
(3)CART回归树中寻找最佳分割点的衡量标准是最小化均方差,xgboost寻找分割点的标准是最大化一个函数。
3.参考:
https://www.cnblogs.com/wxquare/p/5541414.html
【CART与GBDT】的更多相关文章
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGBT)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...
- GBDT学习笔记
GBDT(Gradient Boosting Decision Tree,Friedman,1999)算法自提出以来,在各个领域广泛使用.从名字里可以看到,该算法主要涉及了三类知识,Gradient梯 ...
- GBDT笔记
GBDT笔记 GBDT是Boosting算法的一种,谈起提升算法我们熟悉的是Adaboost,它和AdaBoost算法不同: 区别如下: AdaBoost算法是利用前一轮的弱学习器的误差来更新样本权重 ...
- CART分类与回归树与GBDT(Gradient Boost Decision Tree)
一.CART分类与回归树 资料转载: http://dataunion.org/5771.html Classification And Regression Tree(CART)是决策 ...
- scikit-learn 梯度提升树(GBDT)调参小结
在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点. 1. scikit-learn ...
- 梯度提升树(GBDT)原理小结
在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting De ...
- Adaboost\GBDT\GBRT\组合算法
Adaboost\GBDT\GBRT\组合算法(龙心尘老师上课笔记) 一.Bagging (并行bootstrap)& Boosting(串行) 随机森林实际上是bagging的思路,而GBD ...
- [Machine Learning & Algorithm] 决策树与迭代决策树(GBDT)
谈完数据结构中的树(详情见参照之前博文<数据结构中各种树>),我们来谈一谈机器学习算法中的各种树形算法,包括ID3.C4.5.CART以及基于集成思想的树模型Random Forest和G ...
随机推荐
- 【代码审计】XYHCMS V3.5文件上传漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- linux erase
map的erase windows和linux不同,而迭代器弄不好就失效 1 #include <iostream> 2 #include <map> 3 #include & ...
- day_5.29 网络编程QQDemo.
2018-5-29 16:58:13 明天回学校玩几天给郭星辰过生日 实现一个QQDemo (多线程完成,因为那部分视频损坏没看) ''' from threading import Thread f ...
- day10 多媒体(文字 图片 音频 视频)
1计算机表示图形的几种方式 bmp:以高质量保存 用于计算机 jpg:以良好的质量保存 用于计算机或者网络 png:以高质量保存 图片大小的计算公式:图片 ...
- js函数 eql,equal,equalp
function eql(obj, other) { if(stringp(obj) && stringp(other) && obj === other) retur ...
- Workbox 缓存
介绍 https://developers.google.cn/web/tools/workbox/guides/get-started 先注册一个service worker <script& ...
- 回归cgi、fastcgi原理,解释、解决异常 fastcgi支持分布式计算的原因
小结: 0.结构图 client-request ---> cgi/fastcgi (interface/server) ---> cgi/fastcgi program/applica ...
- Go编写的并行计算示例程序
Go编写的并行计算示例程序 package main import "fmt" const ngoroute = 1000000 func f(left, right chan i ...
- 业界微服务楷模Netflix是这样构建微服务技术架构的
1. 如不考虑组织架构,直接切入技术架构(很多架构师的通病),则失败风险巨大. https://mp.weixin.qq.com/s/C8Rdz9wFtrBKfxPRzf0OBQ
- mongodb丢失数据的原因剖析 - 迎风飘来的专栏 - CSDN博客 https://blog.csdn.net/yibing548/article/details/50844310
mongodb丢失数据的原因剖析 - 迎风飘来的专栏 - CSDN博客 https://blog.csdn.net/yibing548/article/details/50844310