当前位置: 首页 > news >正文

机器学习第15天:GBDT模型

 

☁️主页 Nowl

🔥专栏《机器学习实战》 《机器学习》

📑君子坐而论道,少年起而行之 

文章目录

GBDT模型介绍

Boosting

残差

GBDT的缺点

python代码实现

代码

模型参数解释

结语


GBDT模型介绍

GBDT(Gradient Boosting Decision Tree)也叫做梯度提升决策树,它的主要思想也是集成学习(由名字可以看出GBDT的弱分类器是决策树 ),即训练多个子模型,结合子模型来得到最终结果,但他们也有一些区别


Boosting

Boosting是GBDT与传统集成学习的一个主要区别

传统的集成学习训练过程中,分类器之间不会有任何联系,模型各自独立训练最后结合得出结果

而Boosting训练过程中,分类器会根据上一个分类器的结果来调整,重点关注上一个分类器的误差点,从而更好地提高模型性能


残差

我们接下来来看看分类器之间是怎么联系的,残差代表分类器预测结果与真实值的差距

假设我们有一个预测数字的任务,目标值是40,则会有这样一个过程

  • 第一个分类器预测结果为30,则残差为10
  • 第二个分类器去拟合残差,这时第二个分类器的目标值变成了10,以此类推
  • 最后得到的残差为0,完成任务

可以看到Boosting的思想是每一个分类器去拟合前一个分类器的残差,最后每个分类器的结果加起来就是真实值

GBDT的缺点

  • 由于每个分类器要等待上一个分类器的结果,故模型无法并行训练,消耗的时间可能较多

python代码实现

代码

这段代码使用的数据集是虚拟的,我们这里主要学习模型是如何构建的,在实际任务中将数据集替换为真实数据集即可

# 导入必要的库
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score# 创建虚构的数据集
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化并训练GBDT模型
gbdt_model = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)
gbdt_model.fit(X_train, y_train)# 预测
y_pred = gbdt_model.predict(X_test)# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')

模型参数解释

  • n_estimators: 子分类器数量

  • learning_rate: 学习率

  • max_depth: 决策树最大深度

结语

GBDT是一种优化的集成学习方法,采用了拟合残差的新思想,广泛应用于分类任务和回归任务中,它还有两个优化方法:XGBoost和LightGBM,之后会做具体介绍,敬请期待

感谢阅读,觉得有用的话就订阅下本专栏吧,有错误也欢迎指出

相关文章:

机器学习第15天:GBDT模型

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 ​​ 文章目录 GBDT模型介绍 Boosting 残差 GBDT的缺点 python代码实现 代码 模型参数解释 结语 GBDT模型介绍 GBDT(Gradient Boos…...

STM32F407-14.3.9-01输出比较模式

输出比较模式 此功能用于控制输出波形,或指示已经过某一时间段。 当捕获/比较寄存器与计数器之间相匹配时,输出比较功能: ● 将为相应的输出引脚分配一个可编程值,该值由输出比较模式(TIMx_CCMRx 寄存器中的 OCxM⑦…...

LeetCode题:174. 地下城游戏

目录 一、题目要求 二、解题思路 (1)状态表示 (2)状态转移方程 (3)初始化dp表 (4)填表顺序 (5)返回值 三、代码 一、题目要求 174. 地下城游戏 恶魔们…...

CSS、JS文件无法正确加载至页面问题与解决

目录 1. 问题出现 2. 分析与解决 3. 总结 1. 问题出现 自己在写项目是时候,想启动浏览器查询首页面index.jsp的显示效果 预期效果应该是下面这样的: 但是实际上是这样的: 意思也就是说可能是关于CSS、JS相关的引入方面出了问题&#xff…...

ftp的服务安装配置

安装 yum install -y vsftpd # 是否安装成功 rpm -qa | grep vsftpd # 是否开机启动 systemctl list-unit-files | grep vsftpd # 开机启动 systemctl enable vsftpd.service # ftp端口 netstat -antup | grep ftp # 状态 service vsftpd status service vsftpd start service…...

原码,补码,反码(极简版)

原码补码反码 都有符号位,0表示正数,1表示负数 正数 正数的原码,补码,反码都相同 负数 负数的原码,最高位是1,其余的用正常二进制表示 负数的反码,对原码进行符号位不变,其余位…...

uniapp监听wifi连接状态

在uniapp中检测WiFi连接状态可以使用uni的API进行操作。 uni.onNetworkStatusChange((res) > { console.log(res)uni.getConnectedWifi({success: function(res) {console.log(已连接WIFI, res);},fail: function(err) {console.log(未连接WIFI, err);}}); }) 此函数将返回…...

2023年总结和2024年展望(以ue为主攻)

2023年就要过去了,总结下: 先说好的地方 1,pbr材质集成到了osg中,加上直接光和间接光。终于知道pbr咋回事了。光线追踪的视频也跟着敲了一个。 2,得到了认可。拿到了半年奖,leader让我明年和架构师一起进行…...

南京大学计算机学院面试准备

该内容是我面试南京大学计算机学院保研的时候的准备题目,最后是面试的时候问到的问题。 目录 1. 自我介绍2. 进程和线程的区别3. 循环引用4. 操作系统怎么利用多核?5. 英文介绍二叉搜索树6. 英文介绍二叉搜索树的时间复杂度7. 介绍 stackover flow8. 什…...

API成批分配漏洞介绍与解决方案

一、API成批分配漏洞介绍 批量分配:在API的业务对象或数据结构中,通常存在多个属性,攻击者通过篡改属性值的方式,达到攻击目的。比如通过设置user.is_admin和user.is_manager的值提升用户权限等级;假设某API的默认接口…...

跨网文件摆渡系统:安全、可控的数字传输桥梁

在企业高度信息化的时代,数据的流通与共享已经成为企业、组织乃至个人之间不可或缺的沟通方式。然而,在数据流通的过程中,我们经常会遇到各种难题和挑战,尤其是当涉及到不同网络环境之间的文件传输。这不仅需要保证文件的安全性&a…...

线程池的原理和基本使用~

线程池的基本原理: 无论是之前在JavaSE基础中,我们学习过的常量池,还是在操作数据库时,我们学习过数据库连接池,以及接下来要学习的线程池,均是一种池化思想,其目的就是为了提高资源的利用率&a…...

PyTorch2.0环境搭建

一、安装python并配置环境变量 1、打开python官网,下载并安装 Welcome to Python.org 下载 寻找版本:推荐使用3.9版本,或其他表中显示为安全(security)的版本 安装:(略) 2、配置环…...

figma 基础使用 —— 常用方法

一、 导入组件 分成两种方式 (1)离线的包导入(iOS 常用组件.fig 直接拖拽到figma最近网页) (2)在插件市场下载https://www.figma.com/community 二、figma中使用标尺 快捷键:shift R 三、插件…...

linux rsync 和scp区别

rsync 和 scp 都是 Linux 中用于文件复制的命令,但它们之间存在一些关键差异: 效率:rsync 在复制文件时,只会复制文件中改变的部分,而 scp 则会复制整个文件,即使文件只有一小部分发生了变化。因此&#xf…...

mac如何永久设置环境变量

1. 先将默认shell修改为bash mac修改默认shell为bash-CSDN博客 2. 修改环境变量 Mac中的环境变量介绍 Mac系统的环境变量,加载顺序为: /etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc 当然/etc/profile和/etc/paths…...

小程序一键生成工具哪个好?

在这个数字化时代,小程序已经成为商家吸引客户、提升业务的重要工具。但是,传统的小程序开发方式既费时又费力,让许多商家望而却步。 现在,有了乔拓云小程序模板开发平台,一切都变了。 乔拓云提供了大量精心设计的模板…...

Ubuntu环境下使用nginx实现强制下载静态资源

安装Nginx sudo apt update sudo apt install nginx关闭防火墙 sudo ufw allow Nginx HTTP修改nginx配置 cd /etc/nginx/conf.d vi nginx.conf在http配置中添加(/your path/为需要下载的文件路径) server {listen 80;server_name localhost;location / {root /your path/…...

苹果 macOS 14.1.2 正式发布 更新了哪些内容?

苹果今日向 Mac 电脑用户推送了 macOS 14.1.2 更新(内部版本号:23B92 | 23B2091),本次更新距离上次发布隔了 28 天。 需要注意的是,因苹果各区域节点服务器配置缓存问题,可能有些地方探测到升级更新的时间略…...

【网络编程】-- 02 端口、通信协议

网络编程 3 端口 端口表示计算机上的一个程序的进程 不同的进程有不同的端口号!用来区分不同的软件进程 被规定总共0~65535 TCP,UDP:65535 * 2 在同一协议下,端口号不可以冲突占用 端口分类: 公有端口:0~1023 HT…...

跨越平台鸿沟:Simulink、VeriStand与LabVIEW联合仿真环境一站式部署指南

1. 为什么需要联合仿真环境? 在工业自动化和科研领域,我们经常遇到一个尴尬的局面:不同团队使用的工具链完全不同。控制算法工程师习惯用Simulink建模,测试工程师依赖LabVIEW开发上位机,而硬件在环(HIL&am…...

为什么FlicFlac是Windows用户必备的音频格式转换神器?

为什么FlicFlac是Windows用户必备的音频格式转换神器? 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 还在为不同设备间的音频格式不兼容而烦…...

代码即文档:让三个月后的自己还能看懂今天写的逻辑

在软件测试领域,我们擅长用精密的逻辑去验证他人的代码,却常常在一个隐蔽的角落跌倒——我们自己写的测试代码。三个月前,你精心构建了一套自动化测试框架,一个周末,数百行代码,逻辑环环相扣,运…...

iOS 18.2 Siri大模型升级:从命令响应到意图理解的混合智能架构解析

1. 项目概述:当Siri遇上ChatGPT,一次迟来的“大脑移植”作为一名长期关注移动操作系统与AI交互的从业者,我几乎第一时间就刷到了iOS 18.2 Beta 1的更新包。这次更新的标题——“Siri接入ChatGPT技术”——简单直接,却足以在圈内掀…...

杰理之AutoDuck 闪避节点参数更新结构体【篇】

struct autoduck_update_parm{ int duck_amount; //背景音乐闪避的音量值(dB) int attack; //启动时间(ms) int release; //释放时间(ms) int hold_time; //闪避之后的保持时间 (ms) }; typedef struct AutoDuckParam_TOOL_SET { int is_bypass; struct aut…...

杰理之采样只能达到20K的水平【篇】

...

基于发布订阅模式的Web实时通信框架hermes-for-web实践指南

1. 项目概述:一个为Web应用注入灵魂的“信使”最近在折腾一个前后端分离的Web项目,遇到了一个老生常谈但又极其磨人的问题:前端页面状态和后端数据更新之间的“延迟”与“不一致”。比如,用户A在后台管理界面删除了一个订单&#…...

免费AI编程助手搭建指南:基于本地大模型与开源工具链

1. 项目概述与核心价值最近在逛GitHub的时候,发现了一个挺有意思的项目,叫“Cursor-Ai-Free”。光看名字,可能很多朋友会以为这又是一个破解或者绕过付费限制的工具。但点进去仔细研究后,我发现它的定位和实现思路,其实…...

别再只抄电路图了!深入剖析DC-DC变换器电流采样与ADC保护的硬件细节(以国赛A题为例)

深入解析DC-DC变换器电流采样与ADC保护的硬件设计精髓 在功率电子系统的设计中,电流采样和ADC输入保护往往被视为"配角",但正是这些看似次要的环节,常常成为系统可靠性的致命弱点。我曾在一个工业电源项目中,因为忽视了…...

8B模型做生物实验:实验步骤顺序不乱、剂量无幻觉|ICLR 2026

Thoth团队 投稿量子位 | 公众号 QbitAI人类研究员做实验,从来不是把几句步骤随手拼起来。一份真正可复现的实验protocol,需要明确每一步做什么、对什么对象操作、用什么参数,以及步骤之间的先后依赖。一旦顺序错了、剂量错了、对象错了&#…...