深度理解梯度提升树GBDT

2024-06-02 09:08
文章标签 深度 理解 提升 梯度 gbdt

本文主要是介绍深度理解梯度提升树GBDT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.什么是提升树?

     提升树核心思想是使用残差使损失函数最小,每一次使用树模型拟合残差。最终预测值y是M个树模型的累加和

提升树模型如下

f_{M}(x)=\sum_{m=1}^{M}T(x;\theta _{m})

T(x;\theta_{m})  是决策时,\theta _{m}是决策树的参数,M是决策树的个数

 提升树通用算法过程如下:

输入:(x_{i},y_{i})  i=1...N 样本数据,L(y,f(x)) 损失函数

输出:提升树f_{M}(x)

算法流程

1.初始化 f_{0}(x)=0

2.对m=1,2...M (遍历M个提升树)

          2.1 计算残差   r_{mi}=y_{i}-f_{m-1}(x_{i})

          2.2  使用基学习器T(x;\theta _{m})拟合参数r_{mi},训练集为(x_{i},r_{mi})  i=1...N

          2.3  更新模型  f_{m}(x)=f_{m-1}(x)+T(x;\theta _{m})

3.得到最终的强学习器

  f_{M}(x)=\sum_{m=1}^{M}T(x;\theta _{m})

2.什么是GBDT?

    GBDT是一种提升树模型,基学习器采用决策树,使用boosting思想+一阶梯度下降 的方法。GBDT公式模型

     GBDT=决策树+boosting思想+一阶梯度下降(gradient)

     boosting思想是基模型是有序的,上一个基模型的输出是下一个及模型的输入。第M个树模型的预测值是真实值与前m-1个树模型的残差。 一阶梯度下降是残差的计算使用负梯度值拟合残差

GBDT模型是采用M个模型的线性组合,模型公式如下

f_{M}(x)=\sum_{m=1}^{M}\gamma _{m}T(x;\theta _{m})

首先确定初始模型,定义初始基学习器f_{0}(x),当模型得带到第m步时:

f_{m}(x)=f_{m-1}(x)+\gamma _{m }T(x;\theta _{m})

通过最小化损失函数来确定参数\theta _{m}

 arg min_{\theta_{m} }\sum_{i}^{}L(y_{i},f_{m-1}(x)+\gamma _{m }T(x;\theta _{m})))

Gradient Boosting方法的两种理解,从优化的角度采用梯度下降算法,T表示负梯度方向,\gamma _{m}为步长。从模型角度理解为一阶多项式展开f_{m-1}(x)+\gamma _{m }T(x;\theta _{m}),而T表示一阶信息,\gamma _{m}是系数

gradient boosting的算法流程

 输入:(x_{i},y_{i})  i=1...N 样本数据,L(y,f(x)) 损失函数

输出:提升树f_{M}(x)

1.初始化 f_{0}(x)=0

2.对m=1,2...M (遍历M个提升树)

          2.1 计算残差   r_{mi}=y_{i}-f_{m-1}(x_{i})

          2.2  使用基学习器T(x;\theta _{m})拟合参数r_{mi},训练集为(x_{i},r_{mi})  i=1...N

          2.3  根据梯度下降算法,计算学习器\gamma _{m}

                 arg min_{\gamma {m} }\sum_{i}^{}L(y_{i},f_{m-1}(x)+\gamma _{m }T(x;\theta _{m})))

          2.4  更新模型  f_{m}(x)=f_{m-1}(x)+\gamma _{m}T(x;\theta _{m})

3.得到最终的强学习器

  f_{M}(x)=\sum_{m=1}^{M}\gamma _{m}T(x;\theta _{m})

参考

1.【机器学习】GBDT

这篇关于深度理解梯度提升树GBDT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023539

相关文章

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689