笔记︱决策树族——梯度提升树(GBDT)

笔记︱决策树族——梯度提升树(GBDT)

本笔记来源于CDA DSC,L2-R语言课程所学进行的总结。

一、介绍:梯度提升树(Gradient Boost Decision Tree)

Boosting算法和树模型的结合。按次序建立多棵树,每棵树都是为了减少上一次的残差(residual),每个新的模型的建立都是为了使之前模型的残差往梯度方向减少。最后将当前得到的决策树与之前的那些决策树合并起来进行预测。

相比随机森林有更多的参数需要调整。

————————————————————————————————————————————————————————————

二、随机森林与梯度提升树(GBDT)区别

随机森林:决策树+bagging=随机森林

梯度提升树:决策树Boosting=GBDT

两者区别在于bagging boosting之间的区别,可见:


bagging


boosting


取样方式


bagging采用均匀取样


boosting根据错误率来采样


精度、准确性


相比之,较低



训练集选择


随机的,各轮训练集之前互相独立


各轮训练集的选择与前面各轮的学习结果相关


预测函数权重


各个预测函数没有权重


boost有权重


函数生成顺序


并行生成


顺序生成


应用


象神经网络这样极为消耗时间的算法,bagging可通过并行节省大量的时间开销

baging和boosting都可以有效地提高分类的准确性


baging和boosting都可以有效地提高分类的准确性

一些模型中会造成模型的退化(过拟合)

boosting思想的一种改进型adaboost方法在邮件过滤,文本分类中有很好的性能


随机森林


梯度提升树

————————————————————————————————————————————————————————————

三、R中与决策树有关的Package

单棵决策树:rpart/tree/C50
随机森林:randomforest/ranger
梯度提升树:gbm/xgboost
树的可视化:rpart.plot

时间: 2025-01-01 23:03:54

笔记︱决策树族——梯度提升树(GBDT)的相关文章

scikit-learn 梯度提升树(GBDT)调参小结

在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点. 1. scikit-learn GBDT类库概述 在sacikit-learn中,GradientBoostingClassifier为GBDT的分类类, 而GradientBoostingRegressor为GBDT的回归类.两者的参数类型完全相同,当然有些参数比如损失函数loss的可选择项并不相同.这些参数中,类似于Adabo

集成学习之梯度提升树(GBDT)算法

梯度提升树(GBDT)的全称是Gradient Boosting Decision Tree.GBDT还有很多的简称,例如GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ),GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree)等,其实都是指的同一种算法,本文统一简称GBDT. GBDT 也是 Boosting 算法的一种,但是

梯度提升树(GBDT)原理小结

在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)做一个总结.GBDT有很多简称,有GBT(Gradient Boosting Tree),?GTB(Gradient Tree Boosting?),?GBRT(Gradient Boosting Regression Tree), MART(Multipl

梯度提升树GBDT原理

1.模型 提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法.以决策树为基函数的提升方法称为提升树(boosting tree).对分类问题决策树是二叉分类树,对回归问题决策树是二叉决策树.提升树模型可以表示为决策树的加法模型: 其中,表示决策树:为决策树的参数:M为树的个数 2.学习过程 回归问题提升树使用以下前向分布算法: 在前向分布算法的第m步,给定当前模型,需求解 得到,即第m棵树的参数 当采用平方误差损失函数时, 其损失变为 其中,是当前模型拟合数据的残差(residual)

机器学习(七)—Adaboost 和 梯度提升树GBDT

1.Adaboost算法原理,优缺点: 理论上任何学习器都可以用于Adaboost.但一般来说,使用最广泛的Adaboost弱学习器是决策树和神经网络.对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树. Adaboost算法可以简述为三个步骤: (1)首先,是初始化训练数据的权值分布D1.假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N. (2)然后,训练弱分类器hi.具体训练过程中是:如果某个训练样本点,被弱分类器h

mllib之随机森林与梯度提升树

随机森林和GBTs都是集成学习算法,它们通过集成多棵决策树来实现强分类器. 集成学习方法就是基于其他的机器学习算法,并把它们有效的组合起来的一种机器学习算法.组合产生的算法相比其中任何一种算法模型更强大.准确. 随机森林和梯度提升树(GBTs).两者之间主要差别在于每棵树训练的顺序. 随机森林通过对数据随机采样来单独训练每一棵树.这种随机性也使得模型相对于单决策树更健壮,且不易在训练集上产生过拟合. GBTs则一次只训练一棵树,后面每一棵新的决策树逐步矫正前面决策树产生的误差.随着树的添加,模型

【Spark MLlib速成宝典】模型篇07梯度提升树【Gradient-Boosted Trees】(Python版)

目录 梯度提升树原理 梯度提升树代码(Spark Python) 梯度提升树原理 待续... 返回目录 梯度提升树代码(Spark Python) 代码里数据:https://pan.baidu.com/s/1jHWKG4I 密码:acq1 # -*-coding=utf-8 -*- from pyspark import SparkConf, SparkContext sc = SparkContext('local') from pyspark.mllib.tree import Gradi

04-07 scikit-learn库之梯度提升树

目录 scikit-learn库之梯度提升树 一.GradietBoostingClassifier 1.1 使用场景 1.2 参数 1.3 属性 1.4 方法 二.GradietBoostingClassifier 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ scikit-learn库之梯度提升树 本文主要介绍梯度提升树的两个模型GradientBoosting

04-06 梯度提升树

目录 梯度提升树 一.梯度提升树学习目标 二.梯度提升树详解 2.1 梯度提升树和提升树 三.回归梯度提升树流程 3.1 输入 3.2 输出 3.3 流程 四.梯度提升树优缺点 4.1 优点 4.2 缺点 五.小结 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 梯度提升树 梯度提升树(gradien boosting decision tree,GBDT)在工业上用