Scikit-Learn梯度提升决策树(GBDT)

Scikit-Learn梯度提升决策树

    • 1、梯度提升决策树(GBDT)
      • 1.1、Boosting方法
      • 1.2、GBDT的原理
      • 1.3、GBDT回归的损失函数
      • 1.4、梯度下降与梯度提升
      • 1.5、随机森林与GBDT
      • 1.6、GBDT的优缺点
    • 2、Scikit-Learn梯度提升决策树(GBDT)
      • 2.1、Scikit-Learn GBDT回归
        • 2.1.1、Scikit-Learn GBDT回归API
        • 2.1.2、GBDT回归实践(加州房价预测)
      • 2.2、Scikit-Learn GBDT分类
        • 2.2.1、Scikit-Learn GBDT分类API
        • 2.2.2、GBDT分类实践(鸢尾花分类)
      • 2.3、GBDT参数调优与选择



1、梯度提升决策树(GBDT)


梯度提升决策树(GBDT)是集成学习Boosting提升中的一种重要算法。GBDT在机器学习知识结构中的位置如下:

在这里插入图片描述
梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是一种迭代的决策树算法,它通过构造一组弱学习器(决策树),并把多颗决策树的结果累加起来作为最终的预测输出。该算法将决策树与集成思想进行了有效的结合

1.1、Boosting方法


我们已经知道,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练

与Bagging方法不同,Boosting方法在训练基分类器时采用串行的方式,各个基分类器之间有依赖

Boosting的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。预测时,根据各层分类器的结果的加权得到最终结果

在这里插入图片描述

  • Boosting:串行,将基分类器层层叠加
  • Bagging:并行,各基分类器之间无强依赖

1.2、GBDT的原理


梯度提升决策树算法的流程如下:

  • 初始化:设定一个初始预测值,通常为所有样本目标变量的均值,这个初始预测值代表了我们对目标变量的初始猜测

  • 迭代训练:GBDT是一个迭代算法,通过多轮迭代来逐步改进模型。在每一轮迭代中,GBDT都会训练一棵新的决策树,目标是减少上一轮模型的残差。残差是预测值与真实值之间的误差,新的树将学习如何纠正这些残差

    • 计算残差:在每轮迭代开始时,计算当前模型对训练数据的预测值与实际观测值之间的残差。这个残差代表了前一轮模型未能正确预测的部分

    • 拟合残差:以当前残差为新的学习目标变量,训练一棵新的决策树。这棵树将尝试纠正上一轮模型的错误,以减少残差

    • 更新模型:将新训练的决策树与之前的模型进行组合,更新预测值。具体地,将新树的预测结果与之前模型的预测结果累加,得到更新后的模型

  • 终止/集成:当达到预定的迭代次数或残差变化小于阈值时停止迭代。将所有决策树的预测结果相加,得到最终的集成预测结果。这个过程使得模型能够捕捉数据中的复杂关系,从而提高预测精度

GBDT的核心点在于不断迭代,每一轮迭代都尝试修正上一轮模型的错误,逐渐提高模型的预测性能

GBDT算法流程的数学描述参考文章:https://blog.csdn.net/u010366748/article/details/111060108

例如,使用GBDT预测年龄:

在这里插入图片描述

  • 第一个弱分类器(第一棵树)预测一个年龄(如20岁),计算发现误差有10岁

  • 第二个弱分类器(第二棵树)拟合残差10,预测值6,计算发现差距还有4岁

  • 第三个弱分类器(第三棵树)继续拟合残差4,预测值3,发现误差只有1岁了

  • 第四个弱分类器(第四课树)用1岁拟合剩下的残差,完成

最终,四个弱分类器(四棵树)的结论累加起来,得到30岁这个标准答案。实际在工程应用中,GBDT计算负梯度,使用负梯度近似残差

1.3、GBDT回归的损失函数


回归任务下,GBDT在每一轮迭代时对每个样本都会有一个预测值,此时的损失函数为均方差损失函数:

在这里插入图片描述
损失函数的负梯度计算如下:

在这里插入图片描述
可以看到,当损失函数选用均方误差损失时,每次拟合的值就是真实值减预测值,即残差

梯度提升决策树(GBDT)的训练过程(案例)详见文章:传送门

1.4、梯度下降与梯度提升


负梯度方向是梯度下降最快的方向。梯度下降与梯度提升两种迭代优化算法都是在每一轮迭代中,利用损失函数负梯度方向的信息,更新当前模型。但两者是完全不同的概念

梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新

在这里插入图片描述

梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类

在这里插入图片描述
梯度提升与梯度下降的主要区别如下:

比较项 梯度下降 梯度提升
模型定义空间 参数空间 函数空间
优化规则 θ t \theta_t θt= θ t − 1 \theta_{t-1} θt1+ Δ θ t \Delta\theta_t Δθt f t ( x ) f_t(x) ft(x)= f t − 1 ( x ) f_{t-1}(x) ft1(x)+ Δ f t ( x ) \Delta f_t(x) Δft(x)
损失函数 L L L= ∑ t l ( y t , f ( x ; θ t ) ) \sum_{t}^{}l(y_t,f(x;\theta_t)) tl(y

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/730008.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国灌溉农田空间分布

针对全国灌溉农田空间分布数据缺失的现状,融合MODIS植被指数和统计数据生成MIrAD-GI临时灌溉数据集,再利用约束统计和协同绘图方法将其与中国区域现有灌溉数据进行集成、整合,生成了2000-2019年中国逐年灌溉农田分布数据集(500米空…

【vLLM】核心技术PagedAttention,调度原理

vLLM 简介 来自加州大学伯克利分校、斯坦福大学、加州大学圣迭戈分校的研究人员基于操作系统中经典的虚拟(Virtual)内存和分页(Page)技术,提出了一个新的注意力算法 PagedAttention,并打造了一个LLM服务系统——vLLM,官网为:http…

Anthropic AI模型Claude 3.5 Sonnet在Amazon Bedrock上正式可用

Claude 3.5 Sonnet是Anthropic最先进的Claude系列AI模型的新成员,比Claude 3 Opus更智能且价格只有其五分之一 北京——2024年6月21日 亚马逊云科技宣布,Anthropic最新、最强大的模型Claude 3.5 Sonnet现已在Amazon Bedrock上正式可用,该模型…

在智星云租用算力时,如何选择适合的GPU?

智星云平台分配GPU、CPU、内存的机制为:按租用的GPU数量成比例分配CPU和内存,算力市场显示的CPU和内存均为每GPU分配的CPU和内存,如果租用两块GPU,那么CPU和内存就x2。此外GPU非共享,每个实例对GPU是独占的。 一. CPU…

推动产业数字化转型,六个方面引领变革

从工业经济时代走向数字经济时代,世界经济发生着全方位、革命性的变化,产业数字化便是最显著的表现之一。当前,产业数字化不断深入发展,平台经济、工业互联网、智能制造等新业态、新模式不断涌现,成为了数字经济的重要…

API低代码平台介绍5-数据库记录修改功能

数据库记录修改功能 在上篇文章中我们介绍了如何插入数据库记录,本篇文章会沿用上篇文章的测试数据,介绍如何使用ADI平台定义一个修改目标数据库记录的接口,包括 单主键单表修改、复合主键单表修改、多表修改(整合前两者&#xff…

1.接口测试-postman学习

目录 1.接口相关概念2.接口测试流程3.postman基本使用-创建请求(1)环境(2)新建项目集合Collections(3)新建collection(4)新建模块(5)构建请求请求URLheader设…

pretender:一款功能强大的红队MitM安全测试工具

关于pretender pretender是一款功能强大的红队MitM安全测试工具,该工具专为红队研究人员设计,该工具不仅能够进行MitM和中继攻击,而且还支持执行DHCPv6 DNS接管以及mDNS、LLMNR和NetBIOS-NS欺骗攻击。在该工具的帮助下,广大研究人…

学生护眼大路灯应该怎么选?五款护眼大路灯对比推荐

我们都知道光线无处不在,想要减少近视隐患,就不得不提一下护眼灯了,特别是经常坐在电脑前码字的上班族以及深夜还在学习的学生党这一类人群,经常用眼光线不好不仅影响视力健康,还会影响效率。而一款护眼灯能够提供柔和…

Vue的学习之安装Vue

目录 一、Vue的特点 二、Vue的学习 一、Vue的特点 1.采用组件化模式(xxx.vue包含htmlcssjs) 2.声明式编码,编码人员无需直接操作DOM,提高开发效率 3.使用虚拟DOM优秀的DIFF算法(DIFF是用于新旧虚拟DOM的比较&#…

Adobe Dimension(Dn)下载:附安装包+详细教程

Adobe Dimension常常被简称为Adobe DN,它是一款三维建模设计软件,能让图形设计工作者在平面基础上构建高质量、高逼真的3D图像,将2D/3D构建成可视化场景。除此之外,它还能与 Photoshop和Illustrator等软件紧密的结合起来&#xff…

autodeauth:一款功能强大的自动化Deauth渗透测试工具

关于autodeauth autodeauth是一款功能强大的自动化Deauth渗透测试工具,该工具可以帮助广大研究人员以自动化的形式针对本地网络执行Deauth渗透测试,或者枚举公共网络。当前版本的autodeauth已在树莓派OS和Kali Linux平台上进行过测试,之后的…

易宝OA downloadfile 任意文件读取

【产品&&漏洞简述】 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能 易宝OA downloadfile 文件读取,攻击者可通过…

Spring Boot 集成 MinIO 实现文件上传

Spring Boot 集成 MinIO 实现文件上传 一、 Minio 服务准备 MinIO的搭建过程参考 Docker 搭建 MinIO 对象存储。 登录MinIO控制台&#xff0c;新建一个 Bucket&#xff0c;修改 Bucket 权限为公开。 二、MinIO 集成 添加 MinIO 依赖 <!-- https://mvnrepository.com/ar…

难辨真假的Midjourney案例(附提示词):适合练手

人物 时尚女孩 Street style fashion photo, full-body shot of a young Chinese woman with long curly black hair, walking confidently with a crowd of people down a sidewalk in Hong Kong, wearing a emerald green Gucci maxi dress & gold jewelry, sunset lig…

英伟达和IBM搞事情!主攻“量子计算+AI”

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨娴睿/慕一 排版丨沛贤 深度好文&#xff1a;2000字丨8分钟阅读 Ismael Faro是一位计算机工程师&#xff0c;自2015年以来&#xff0c;他就成为开发IBM量子软件生态系统的重要人物。从2016…

2748. 美丽下标对的数目(Rust暴力枚举)

题目 给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0 ≤ i < j < nums.length &#xff0c;如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 &#xff0c;则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。 返回 nums 中 美丽下标对 的总…

DualSPHysics运行报错ERROR: Some boundary particle was excluded.

如下查看输出&#xff0c;看到报错ERROR: Some boundary particle was excluded.某些边界粒子超出了模拟域的X限制&#xff08;右限制&#xff09;&#xff0c;具体错误的边界溢出粒子储存在Error_BoundaryOut.vtk里边。 用paraview打开Error_BoundaryOut.vtk还有边界的stl&am…

React路由笔记(函数组件,自用)

配置 npm i react-router-dom基本使用 目录结构 在src中创建page文件夹放置各页面组件&#xff0c;router中放置路由 1、router中配置路由 在/router/index.js中&#xff0c;使用createBrowserRouter配置路由。 import { createBrowserRouter } from "react-router…

mybatis框架相关问题总结(本地笔记搬运)

1、背景 2、运行启动问题 问题一 运行spring boot项目时报错&#xff1a;‘factoryBeanObjectType‘: java.lang.String 解决一 版本问题&#xff0c;springframework版本和mybatis/mybatis-plus版本不兼容。现spring-boot使用3.3.0版本&#xff0c;mybatis-plus使用3.5.7…