【机器学习基础】机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree)

在这里插入图片描述

机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree)

      • 1. 算法逻辑
      • 2. 算法原理与数学推导
        • 2.1 目标函数
        • 2.2 负梯度计算
        • 2.3 决策树拟合
        • 2.4 叶子权重计算
        • 2.5 模型更新
      • 3. 模型评估
        • 评估指标
        • 防止过拟合
      • 4. 应用案例
        • 4.1 金融风控
        • 4.2 推荐系统
        • 4.3 计算机视觉
      • 5. 面试题及答案
      • 6. 优缺点分析
        • 优点
        • 缺点
      • 7. 数学推导示例(回归问题)

1. 算法逻辑

GBDT 是一种基于决策树的集成学习算法,属于 Boosting 家族。其核心思想是串行训练多个弱学习器(决策树),每棵树学习前序模型残差的负梯度,最终通过加权求和得到强学习器。核心逻辑如下:

  • 初始化:用常数值初始化模型(如目标均值)
    F 0 ( x ) = arg ⁡ min ⁡ γ ∑ i = 1 n L ( y i , γ ) F_0(x) = \arg\min_\gamma \sum_{i=1}^n L(y_i, \gamma) F0(x)=argγmini=1nL(yi,γ)
  • 迭代训练
    • 计算当前模型的伪残差(负梯度)
    • 训练新树拟合该残差
    • 更新模型: F m ( x ) = F m − 1 ( x ) + ν h m ( x ) F_m(x) = F_{m-1}(x) + \nu h_m(x) Fm(x)=Fm1(x)+νhm(x) ν \nu ν为学习率)
  • 最终输出:加权树组合
    F ( x ) = ∑ m = 0 M ν h m ( x ) F(x) = \sum_{m=0}^M \nu h_m(x) F(x)=m=0Mνhm(x)

2. 算法原理与数学推导

2.1 目标函数

设训练集 { ( x i , y i ) } i = 1 n \{(x_i,y_i)\}_{i=1}^n {(xi,yi)}i=1n,损失函数 L ( y , F ( x ) ) L(y, F(x)) L(y,F(x)),目标是最小化正则化目标函数:
L = ∑ i = 1 n L ( y i , F ( x i ) ) + ∑ m = 1 M Ω ( h m ) \mathcal{L} = \sum_{i=1}^n L(y_i, F(x_i)) + \sum_{m=1}^M \Omega(h_m) L=i=1nL(yi,F(xi))+m=1MΩ(hm)
其中 Ω ( h m ) = γ T + 1 2 λ ∥ w ∥ 2 \Omega(h_m) = \gamma T + \frac{1}{2}\lambda \|w\|^2 Ω(hm)=γT+21λw2 T T T为叶子数, w w w为叶子权重)

2.2 负梯度计算

在第 m m m 次迭代,计算伪残差:
r i m = − [ ∂ L ( y i , F ( x i ) ) ∂ F ( x i ) ] F ( x ) = F m − 1 ( x ) r_{im} = -\left[ \frac{\partial L(y_i, F(x_i))}{\partial F(x_i)} \right]_{F(x)=F_{m-1}(x)} rim=[F(xi)L(yi,F(xi))]F(x)=Fm1(x)

损失函数伪残差 r i m r_{im} rim
平方损失 y i − F m − 1 ( x i ) y_i - F_{m-1}(x_i) yiFm1(xi)
绝对损失 sign ( y i − F m − 1 ( x i ) ) \text{sign}(y_i - F_{m-1}(x_i)) sign(yiFm1(xi))
Huber损失分段函数
对数损失(分类) y i − 1 1 + e − F m − 1 ( x i ) y_i - \frac{1}{1+e^{-F_{m-1}(x_i)}} yi1+eFm1(xi)1
2.3 决策树拟合

训练新树 h m h_m hm 拟合伪残差 { ( x i , r i m ) } \{(x_i, r_{im})\} {(xi,rim)},通过递归分裂节点:

  • 分裂准则:最大化增益(Gain)
    Gain = 1 2 [ G L 2 H L + λ + G R 2 H R + λ − ( G L + G R ) 2 H L + H R + λ ] − γ \text{Gain} = \frac{1}{2} \left[ \frac{G_L^2}{H_L + \lambda} + \frac{G_R^2}{H_R + \lambda} - \frac{(G_L+G_R)^2}{H_L+H_R+\lambda} \right] - \gamma Gain=21[HL+λGL2+HR+λGR2HL+HR+λ(GL+GR)2]γ
    其中 G = ∑ i ∈ I g i G = \sum_{i \in I} g_i G=iIgi H = ∑ i ∈ I h i H = \sum_{i \in I} h_i H=iIhi g i g_i gi为一阶导, h i h_i hi为二阶导)
2.4 叶子权重计算

对叶子节点 j j j,最优权重为:
w j ∗ = − ∑ i ∈ I j g i ∑ i ∈ I j h i + λ w_j^* = -\frac{\sum_{i \in I_j} g_i}{\sum_{i \in I_j} h_i + \lambda} wj=iIjhi+λiIjgi

2.5 模型更新

F m ( x ) = F m − 1 ( x ) + ν ∑ j = 1 J w j 1 ( x ∈ R j ) F_m(x) = F_{m-1}(x) + \nu \sum_{j=1}^J w_j \mathbf{1}(x \in R_j) Fm(x)=Fm1(x)+νj=1Jwj1(xRj)

3. 模型评估

评估指标
任务类型常用指标
回归MSE, MAE, R 2 R^2 R2
分类Accuracy, F1-Score, AUC-ROC
排序NDCG, MAP
防止过拟合
  • 早停法:验证集性能不再提升时停止迭代
  • 正则化:通过 γ \gamma γ, λ \lambda λ 控制复杂度
  • 子采样:每次迭代随机选择部分样本或特征

4. 应用案例

4.1 金融风控
  • 场景:信用评分卡
  • 特征:收入、负债比、交易频率
  • 效果:AUC 提升 12% 对比逻辑回归
4.2 推荐系统
  • 场景:电商点击率预测
  • 特征组合:自动学习“用户年龄×商品类别”等交叉特征
  • 优势:处理高维稀疏特征优于协同过滤
4.3 计算机视觉
  • 场景:图像语义分割
  • 做法:GBDT 处理 CNN 提取的特征向量
  • 结果:在 Pascal VOC 上 mIOU 提升 3.2%

5. 面试题及答案

Q1:GBDT 为什么拟合负梯度?
A:通过梯度下降在函数空间优化,负梯度是损失下降最快的方向。

Q2:如何处理分类特征?
A:最佳实践是使用直方图算法(如 LightGBM):

  1. 按特征取值排序
  2. 根据梯度直方图寻找最优分裂点
  3. 复杂度从 O ( # categories ) O(\#\text{categories}) O(#categories) 降至 O ( bin ) O(\text{bin}) O(bin)

Q3:GBDT vs Random Forest?

维度GBDTRandom Forest
基学习器关系串行依赖并行独立
偏差-方差低偏差低方差
过拟合易过拟合(需早停)抗过拟合能力强
数据敏感度需特征缩放无需特征缩放

6. 优缺点分析

优点
  1. 非线性能力强:自动捕捉高阶交互特征
  2. 鲁棒性好:对异常值和缺失值不敏感
  3. 可解释性:可通过特征重要性分析(累积分裂增益)
    Importance j = ∑ splits ( j ) Gain \text{Importance}_j = \sum_{\text{splits}(j)} \text{Gain} Importancej=splits(j)Gain
  4. 适用广泛:支持回归/分类/排序任务
缺点
  1. 训练效率低:串行训练无法并行化(改进:LightGBM 用 leaf-wise 生长)
  2. 高维稀疏数据:文本数据表现不如神经网络
  3. 超参敏感:需精细调参(树深度、学习率等)

7. 数学推导示例(回归问题)

目标:最小化平方损失 L = 1 2 ( y i − F ( x i ) ) 2 L = \frac{1}{2}(y_i - F(x_i))^2 L=21(yiF(xi))2
伪残差
r i = − ∂ L ∂ F ∣ F = F m − 1 = y i − F m − 1 ( x i ) r_i = -\frac{\partial L}{\partial F} \bigg|_{F=F_{m-1}} = y_i - F_{m-1}(x_i) ri=FL F=Fm1=yiFm1(xi)
叶子权重(设 λ = 0 \lambda=0 λ=0):
w j ∗ = ∑ i ∈ R j r i ∣ R j ∣ = 残差的均值 w_j^* = \frac{\sum_{i \in R_j} r_i}{|R_j|} = \text{残差的均值} wj=RjiRjri=残差的均值
模型更新
F m ( x ) = F m − 1 ( x ) + ν ∑ j = 1 J w j 1 ( x ∈ R j ) F_m(x) = F_{m-1}(x) + \nu \sum_{j=1}^J w_j \mathbf{1}(x \in R_j) Fm(x)=Fm1(x)+νj=1Jwj1(xRj)


💡 关键洞察:GBDT 将优化问题转化为函数空间的梯度下降,每棵树对应一次梯度更新。实际应用优先选择改进算法(XGBoost/LightGBM/CatBoost),它们在效率、准确性和工程实现上均有显著提升。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水墨色调中国风PPT模版分享

水墨色调中国风PPT模版分享:水墨中国风PPT模版https://pan.quark.cn/s/4368c537b1d2 第一套PPT模版​:主题是“爱莲说”,水墨风格封面。核心视觉是绿色莲蓬、白鹤、红色印章,文字有“爱莲说”等。适用文学或传统文化类演示。 ​第…

PBX、IP PBX、FXO 、FXS 、VOIP、SIP 的概念解析以及关系

PBX(Private Branch Exchange) 概念 :PBX 是专用交换机,是一种在企业或组织内部使用的电话交换系统。它允许内部用户之间以及内部用户与外部公共电话网络(PSTN)之间进行通信。例如,在一个大型企…

LabVIEW双光子荧光成像软件开发

双光子荧光成像技术在抑郁小鼠脑内丙二醛(MDA)和甲醛(FA)检测中的软件开发,基于 LabVIEW 平台构建从硬件控制、数据采集到图像处理的全流程系统。结合 5734 FPGA 实现实时图像处理,突出双光子成像的深度开发…

OSI模型中的网络协议

一、电子邮件协议:从SMTP到MIME的扩展 电子邮件系统的核心协议包括SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol)和IMAP(Internet Message Access Protocol),但…

流程自动化引擎:让业务自己奔跑

在当今竞争激烈的商业环境中,企业面临着快速变化的市场需求、日益复杂的业务流程以及不断增长的运营成本。如何优化业务流程、提升效率并降低成本,成为企业持续发展的关键问题。 流程自动化引擎(Process Automation Engine)作为一…

DNS解析过程以及使用的协议名称

DNS(Domain Name System 域名系统)解析是一个分层查询的过程 1.本地缓存查询阶段 先检查浏览器自身的DNS缓存 接着检查操作系统的DNS缓存 最后检查本地 hosts 文件 2.本地DNS服务器查询阶段 先向本地DNS服务器查询,协议是 DNS over UDP&a…

思澈科技助力Keep Watch Pilot 1:重新定义智能运动手表体验

——以创新芯片技术,打造长续航、高性能的随身运动教练 作为智能穿戴领域的核心技术支持者,思澈科技携手Keep共同推出全新智能运动手表Keep Watch Pilot 1。该产品搭载思澈科技自主研发的SF32LB557芯片,在高性能显示、超长续航与精准运动监测…

github actions入门指南

GitHub Actions 是 GitHub 提供的持续集成和持续交付(CI/CD)平台,允许开发者自动化软件工作流程(如构建、测试、部署)。以下是详细介绍: 一、核心概念 Workflow(工作流程) 持续集成的…

Pytorch中一些重要的经典操作和简单讲解

Pytorch中一些重要的经典操作和简单讲解: 形状变换操作 reshape() / view() import torchx torch.randn(2, 3, 4) print(f"原始形状: {x.shape}")# reshape可以处理非连续张量 y x.reshape(6, 4) print(f"reshape后: {y.shape}")# view要求…

ubuntu下nginx

我用的是ubuntu22 配置文件的准确位置 静态网页的存放位置 放大看到在静态文件部署的配置路径 该路径下面有一个default文件查看 针对上图的解析如下: 找到root /var/www/html 我尝试把自己的一个index文件设置为默认,复制到/var/www/html下 ctrl加…

Git使用手册保姆级教程

Git 使用手册 一、Git 简介与安装 什么是Git? • Git 是一个分布式版本控制系统,用于跟踪文件变化,支持多人协作开发。 安装步骤 • Windows:通过 Git官网 下载安装包,按默认配置安装即可。 • macOS&#xff1a…

k8s Headless Service

Kubernetes 无头服务(Headless Service)配置与使用场景 1.无头服务概述 无头服务(Headless Service)是 Kubernetes 中的一种特殊服务类型,它**不分配集群 IP(ClusterIP),而是直接暴露…

基本面高股息策略

策略概述 一种基于基本面高股息策略的投资策略,主要通过Python在聚宽平台上实现。该策略的核心思想是通过筛选出具有优质基本面和高股息率的股票进行投资,以期获得稳定的长期回报。策略包括以下几个主要步骤: 1. 初始化与参数设置:定义策略的基本参数和回测设置。 2. 每日…

GaussDB资源冻结与解冻:精细化资源管理的实践与策略

GaussDB资源冻结与解冻:精细化资源管理的实践与策略 引言 在云计算环境中,数据库资源的动态调配能力直接影响业务成本与稳定性。华为云GaussDB作为新一代分布式数据库,通过​​资源冻结(Resource Quota Freeze)​​与…

设计模式24——访问者模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 访问者模式(Visito…

cuda编程笔记(2)--传递参数、设备属性

以下是最简单的带参数的核函数使用过程&#xff1a; #include<iostream> #include<cstdio> #include "cuda_runtime.h" #include "device_launch_parameters.h" __global__ void add(int a,int b,int *c) {*c a b; } int main() {int c;int…

C# WinForm应用程序多语言实现全面指南

目录 引言 一、多语言实现基础概念 1.1 多语言实现的核心原理 1.2 .NET本地化支持机制 二、基于XML的多语言实现方案 2.1 方案概述 2.2 XML文件结构示例 2.3 实现步骤 2.4 优缺点分析 三、基于.resx资源文件的多语言实现 3.1 方案概述 3.2 实现步骤 3.3 资源文件结…

Python爬虫实战:研究Playwright框架相关技术

1 引言 1.1 研究背景与意义 网络爬虫作为一种自动获取互联网信息的技术,在数据采集、信息监测、竞争情报等领域具有广泛应用。随着 Web 技术的发展,越来越多的网站采用 JavaScript 动态渲染技术,传统爬虫工具难以有效获取完整的页面内容。Playwright 作为新一代自动化测试…

中企出海大会|打造全球化云计算一张网,云网络助力中企出海和AI创新

全球化是阿里云的长期战略&#xff0c;未来阿里云将持续加大云和 AI 基础设施建设投入。首先是加速打造全球化的云计算网络&#xff0c;一张具备 AI技术服务能力和全球竞争力的云计算网络是阿里云的长期目标。 —— 阿里巴巴集团 CEO、阿里云智能集团董事长兼 CEO 吴泳铭 5 月 …

唯创WT2606B TFT显示灵动方案,重构电子锁人机互动界面,赋能智能门锁全场景交互!

在智能家居的浪潮中&#xff0c;门锁搭载显示屏已成为行业创新的焦点。据行业数据显示&#xff0c;2023年全球智能门锁出货量中&#xff0c;搭载显示屏的型号占比已突破40%&#xff0c;且年复合增长率达25%。而2024年国内智能门锁销量突破2200万套&#xff0c;预计2025年市场规…