首页 > 其他分享 >什么是GBDT

什么是GBDT

时间:2024-11-02 21:51:59浏览次数:5  
标签:函数 梯度 什么 损失 GBDT hm 模型

1. GBDT的核心思想与梯度提升

GBDT 全称为 Gradient Boosting Decision Tree,即梯度提升决策树。它是一种基于梯度下降优化的提升算法,通过逐步构建决策树来提高模型的预测性能。GBDT 的核心思想是:每一轮新加入的树对当前模型的预测误差进行拟合,即通过构建多个弱学习器(回归树)以最小化整体损失函数,从而提升模型的准确性。

在梯度提升框架中:

  • 损失函数表示模型的拟合效果(例如:均方误差或交叉熵)。
  • 梯度提升指的是,使用每一步的损失函数的负梯度方向来拟合新的弱学习器,以此逐步优化损失函数。

2. GBDT的数学表达与推导

假设数据集为 ( x i , y i ) (x_i, y_i) (xi​,yi​),其中 i = 1 , 2 , … , n i = 1, 2, \ldots, n i=1,2,…,n,模型的目标是找到一个函数 F ( x ) F(x) F(x) 来最小化损失函数 L ( y , F ( x ) ) L(y, F(x)) L(y,F(x))。因此,GBDT的目标可以表示为:
F ∗ ( x ) = arg ⁡ min ⁡ F ∑ i = 1 n L ( y i , F ( x i ) ) F^*(x) = \arg \min_{F} \sum_{i=1}^n L(y_i, F(x_i)) F∗(x)=argFmin​i=1∑n​L(yi​,F(xi​))

2.1 迭代更新模型

GBDT的模型是逐步构建的。假设模型当前已经构建了 m m m 轮决策树 F m ( x ) F_m(x) Fm​(x),则在第 m + 1 m+1 m+1 轮中,我们希望增加一个新模型 h m + 1 ( x ) h_{m+1}(x) hm+1​(x) 以进一步减少当前的损失:
F m + 1 ( x ) = F m ( x ) + γ h m + 1 ( x ) F_{m+1}(x) = F_m(x) + \gamma h_{m+1}(x) Fm+1​(x)=Fm​(x)+γhm+1​(x)

其中, γ \gamma γ 是步长(也称为学习率),用来控制每一轮新加树对模型的影响。

2.2 负梯度拟合

要找到合适的 h m + 1 ( x ) h_{m+1}(x) hm+1​(x),GBDT使用损失函数的负梯度作为近似的优化目标。具体来说,在第 m m m 轮中,计算第 i i i 个样本的残差(即负梯度)为:
r i ( m ) = − [ ∂ L ( y i , F ( x i ) ) ∂ F ( x i ) ] F ( x ) = F m ( x ) r_{i}^{(m)} = - \left[ \frac{\partial L(y_i, F(x_i))}{\partial F(x_i)} \right]_{F(x) = F_m(x)} ri(m)​=−[∂F(xi​)∂L(yi​,F(xi​))​]F(x)=Fm​(x)​

然后我们训练一个新的回归树 h m + 1 ( x ) h_{m+1}(x) hm+1​(x) 去拟合这些残差,即使得 h m + 1 ( x ) h_{m+1}(x) hm+1​(x) 尽可能接近 r i ( m ) r_{i}^{(m)} ri(m)​,即:

h m + 1 ( x ) ≈ r i ( m ) h_{m+1}(x) \approx r_{i}^{(m)} hm+1​(x)≈ri(m)​

2.3 学习率与模型更新

在找到新树 h m + 1 ( x ) h_{m+1}(x) hm+1​(x) 后,使用一个学习率 γ \gamma γ 来更新模型:
F m + 1 ( x ) = F m ( x ) + γ h m + 1 ( x ) F_{m+1}(x) = F_m(x) + \gamma h_{m+1}(x) Fm+1​(x)=Fm​(x)+γhm+1​(x)

学习率是GBDT的一个重要参数,用于平衡新树对整体模型的影响。通常,较小的学习率会让模型更稳健,但需要更多的树以获得良好的性能。

3. 损失函数的选择

GBDT 作为一种框架,可以应用于多种损失函数的优化,因此适合不同的任务。常见的损失函数选择包括:

  • 均方误差(MSE):用于回归任务,目标是最小化预测值与真实值之间的平方误差。
  • 对数似然损失:用于二分类任务,使模型输出接近于真实的类别标签。
  • 绝对误差:可用于对噪声更为稳健的回归任务。

不同损失函数的选择会影响梯度计算方式以及模型的表现,因此需根据具体任务选择合适的损失函数。

4. GBDT算法流程

完整的 GBDT 算法流程如下:

  1. 初始化模型:通常使用所有样本的均值作为初始预测 F 0 ( x ) F_0(x) F0​(x)。

  2. 迭代训练

    • 对于每一轮 m = 1 , 2 , … , M m = 1, 2, \ldots, M m=1,2,…,M:
      1. 计算负梯度:对每一个样本计算当前损失函数的负梯度,作为新的目标值。
      2. 训练弱学习器:使用这些目标值训练新的决策树 h m ( x ) h_m(x) hm​(x)。
      3. 计算学习率 γ m \gamma_m γm​:通过一维线搜索,找到最佳学习率以最小化损失函数。
      4. 更新模型:通过 F m ( x ) = F m − 1 ( x ) + γ m h m ( x ) F_m(x) = F_{m-1}(x) + \gamma_m h_m(x) Fm​(x)=Fm−1​(x)+γm​hm​(x) 更新模型。
  3. 最终预测:经过 M M M 轮训练后,得到最终的模型 F M ( x ) F_M(x) FM​(x) 作为预测模型。

5. GBDT 的优缺点分析

优点

  • 强大的预测能力:GBDT 可以在回归、分类等任务中获得高精度的预测结果。
  • 自动特征选择:树模型天然具有特征选择的功能,不需要进行特征归一化或标准化。
  • 适合非线性关系:可以有效拟合数据中的非线性关系。
  • 灵活的损失函数选择:可以根据任务定制不同的损失函数,使模型适应性更强。

缺点

  • 训练速度较慢:GBDT 需要在多轮迭代中构建大量的决策树,计算开销较大。
  • 容易过拟合:如果树的数量太多或树的深度较深,GBDT 容易过拟合训练数据。
  • 参数调节复杂:GBDT 需要调节多个参数(树的数量、深度、学习率等),调优难度较大。
  • 对缺失值敏感:GBDT 不能自动处理缺失值,数据预处理要求较高。

6. GBDT 常用的参数

常用的 GBDT 参数包括:

  • n_estimators:树的数量。
  • max_depth:单棵树的最大深度,控制模型复杂度。
  • learning_rate:学习率,控制每棵树对最终模型的贡献。
  • subsample:每轮训练时随机抽取的样本比例,适当减少可以提升模型的泛化能力。
  • min_samples_split/min_samples_leaf:控制每个节点的最小样本数,防止过拟合。

总结

GBDT 是一种基于梯度下降的提升算法,逐步减少预测误差并构建强大的预测模型。通过合理选择损失函数和调节参数,GBDT 可以适用于回归、分类等多种任务。了解其数学推导和算法流程,有助于你更深入地理解其在实际问题中的应用和优势。

标签:函数,梯度,什么,损失,GBDT,hm,模型
From: https://blog.csdn.net/u013172930/article/details/143425603

相关文章

  • 美团面试:Mysql如何选择最优 执行计划,为什么?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • C和C++的字符串有什么不同?
    一、C语言中字符串的存储方式C语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中,且以字符\0结尾;字符数组存储在C语言中,字符串常常以字符数组的形式进行存储。例如:charstr[]="Hello";这里定义了一个字符数组str,编译器会自动在字符串......
  • 我们终其一生为了什么?
        清灯伴风起,皎影满窗前。细想,竟也有些年月,没有如此的静坐于桌前文案素笔了,遥想上次的素写,应该是十年前吧!不仅惊叹岁月的年轮是如此的猛涨,说是过山车都不为过吧,因为我印象中可能距离上次素写很近,可屈指一算,大约有十年了,十年没有认真的记录自己的所感所悟,也许,这也是一......
  • C和C++的字符串有什么不同?
    C字符串C语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中,且以字符 \0结尾;#include<stdio.h>intmain(){ charstr[4]="sv";//charstr[3]="sv";是错的 charstr[]="sv"; charstr[4]={'s','','v'......
  • 为什么大家都在学数字孪生呢?
    随着物联网,大数据、人工智能等技术的发展,新一代信息技术与制造业正在深度融合,人们与物理世界的交互方式正在发生转折性的变化。数字化转型正在成为企业的重要战略,而数字孪生则成为全新的焦点。当下,在数字技术和数字经济火热发展的过程中,数字孪生无疑成为数字技术领域的重要支......
  • 公司用什么软件来监控电脑?2024年4款公司内部电脑监控软件精选推荐
    公司内部电脑的安全与效率管理成为企业不可忽视的重要任务。电脑监控软件作为一种有效的管理工具,能够帮助企业实时监控员工电脑使用情况,提升工作效率,并保障数据安全。以下是2024年四款值得推荐的公司内部电脑监控软件,它们各具特色,能够满足不同企业的需求。1.安企神安......
  • wgcloud是什么软件
    WGCLOUD是一款开源免费的主机/服务器管理软件,可以监测主机或者服务器的各种基础指标数据,比如内存、cpu、磁盘、网络、进程、端口、日志、容器等资源数据相比其他软件,WGCLOUD使用起来更简单高效,安装实施方便,很容易上手......
  • 适用于 Windows 10 的最佳免费数据恢复软件是什么?
    有没有适用于Windows10的真正免费的数据恢复软件?丢失重要数据,无论是由于硬件问题、软件问题、意外删除、格式化还是病毒和恶意软件,确实很麻烦。当你面临数据丢失时,你可能真心希望找到一款免费的数据恢复软件,能够帮你快速无忧地恢复所有数据。但是,有没有完全免费的数据恢复......
  • 第三十一讲:为什么还有kill不掉的语句?
    第三十一讲:为什么还有kill不掉的语句?简概依旧是平平无奇的开篇​ 在MySQL中有两个kill命令:​ 一个是killquery+线程id,表示终止这个线程中正在执行的语句;​ 一个是killconnection+线程id,这里connection可缺省,表示断开这个线程的连接,当然如果这个线程有语句正......
  • 为什么负面那么多的主播 依旧有很多脑残粉
    负面多的主播仍有很多脑残粉,主要有以下原因:1、心理投射与情感寄托:自我代入与幻想:一些人在现实生活中可能感到孤独、迷茫或缺乏成就感,他们会将主播视为理想中的自己或某种精神寄托,把自己对成功、魅力等的渴望投射到主播身上。通过支持主播,他们能获得一种心理上的满足感和认同感,仿佛......