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

《GBDT 算法的原理推导》 11-13初始化模型 公式解析

本文是将文章《GBDT 算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。


公式(11-13)是GBDT算法的第一步,它描述了如何初始化模型。公式如下:

f 0 ( x ) = arg ⁡ min ⁡ c ∑ i = 1 N L ( y i , c ) f_0(x) = \arg \min_c \sum_{i=1}^N L(y_i, c) f0(x)=argcmini=1NL(yi,c)

1. 公式(11-13)的意义

公式(11-13)用于初始化GBDT模型的预测值。在GBDT算法中,模型 f ( x ) f(x) f(x) 是通过多棵树的组合逐步构建的,而在开始构建任何一棵树之前,我们需要一个初始的预测值 f 0 ( x ) f_0(x) f0(x)

2. 为什么需要初始化模型

在GBDT的训练过程中,每一轮都会通过一棵新树来“纠正”前面的模型。但是,在第一轮时,我们还没有任何树,所以需要一个初始值。这个初始值 f 0 ( x ) f_0(x) f0(x) 是模型预测的起点,后续的每棵树都基于它进行优化。

3. 如何确定初始值 f 0 ( x ) f_0(x) f0(x)

公式(11-13)告诉我们,初始预测值 f 0 ( x ) f_0(x) f0(x) 是通过最小化所有样本的损失函数来确定的。具体来说:

  • 这里的 c c c 是一个常数,表示所有样本统一的初始预测值。
  • 我们希望找到一个常数 c c c,使得对于所有样本 ( x i , y i ) (x_i, y_i) (xi,yi) 的损失函数之和 ∑ i = 1 N L ( y i , c ) \sum_{i=1}^N L(y_i, c) i=1NL(yi,c) 最小。

4. 损失函数 L ( y i , c ) L(y_i, c) L(yi,c) 的作用

在GBDT中,损失函数 L ( y , f ( x ) ) L(y, f(x)) L(y,f(x)) 用于衡量模型预测值 f ( x ) f(x) f(x) 与真实值 y y y 之间的差距。通过最小化损失函数,我们可以得到一个合理的初始预测值。

对于不同的任务,损失函数 L ( y , f ( x ) ) L(y, f(x)) L(y,f(x)) 会有所不同,因此这个初始值的具体求法也会不同。常见的损失函数包括:

  • 平方损失(用于回归任务): L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y, f(x)) = (y - f(x))^2 L(y,f(x))=(yf(x))2
  • 对数损失(用于二分类任务): L ( y , f ( x ) ) = − [ y log ⁡ f ( x ) + ( 1 − y ) log ⁡ ( 1 − f ( x ) ) ] L(y, f(x)) = - [y \log f(x) + (1 - y) \log (1 - f(x))] L(y,f(x))=[ylogf(x)+(1y)log(1f(x))]

5. 不同损失函数下的初始值求解

下面我们分别介绍在常见损失函数下,如何求解 f 0 ( x ) f_0(x) f0(x)

(1)平方损失(用于回归任务)

假设损失函数是平方损失,即:

L ( y i , c ) = ( y i − c ) 2 L(y_i, c) = (y_i - c)^2 L(yi,c)=(yic)2

此时,公式(11-13)变为:

f 0 ( x ) = arg ⁡ min ⁡ c ∑ i = 1 N ( y i − c ) 2 f_0(x) = \arg \min_c \sum_{i=1}^N (y_i - c)^2 f0(x)=argcmini=1N(yic)2

这是一个简单的最小二乘问题。通过求导并让导数等于零,我们可以得出最优的 c c c 值为所有 y i y_i yi 的均值:

f 0 ( x ) = 1 N ∑ i = 1 N y i f_0(x) = \frac{1}{N} \sum_{i=1}^N y_i f0(x)=N1i=1Nyi

因此,在平方损失的情况下,GBDT的初始预测值就是所有样本目标值的均值

(2)对数损失(用于二分类任务)

假设我们要解决一个二分类问题,使用对数损失函数:

L ( y i , c ) = − [ y i log ⁡ c + ( 1 − y i ) log ⁡ ( 1 − c ) ] L(y_i, c) = - [y_i \log c + (1 - y_i) \log (1 - c)] L(yi,c)=[yilogc+(1yi)log(1c)]

在这种情况下,公式(11-13)变为:

f 0 ( x ) = arg ⁡ min ⁡ c ∑ i = 1 N − [ y i log ⁡ c + ( 1 − y i ) log ⁡ ( 1 − c ) ] f_0(x) = \arg \min_c \sum_{i=1}^N - [y_i \log c + (1 - y_i) \log (1 - c)] f0(x)=argcmini=1N[yilogc+(1yi)log(1c)]

通过对 c c c 求解,我们可以得出 f 0 ( x ) f_0(x) f0(x)正类样本的比例(即所有 y i y_i yi 的均值),或者等价地,初始预测值是正类概率的对数几率

f 0 ( x ) = log ⁡ ∑ i = 1 N y i N − ∑ i = 1 N y i f_0(x) = \log \frac{\sum_{i=1}^N y_i}{N - \sum_{i=1}^N y_i} f0(x)=logNi=1Nyii=1Nyi

6. 总结

公式(11-13)的作用是初始化GBDT模型,使得初始预测值 f 0 ( x ) f_0(x) f0(x) 能够尽量接近真实值,从而为后续的树提供一个合理的起点。通过最小化损失函数之和,我们可以根据不同的损失函数类型选择合适的初始值,例如:

  • 回归任务中使用平方损失的均值。
  • 分类任务中使用对数损失的对数几率。

这一初始化过程确保了GBDT的模型从一开始就具有一定的预测能力。


对数损失下的GBDT初始预测值f0(x) 的表达式 推导过程

http://www.lryc.cn/news/475413.html

相关文章:

  • # Easysearch 与 LLM 融合打造高效智能问答系统
  • 本地可以插入表记录,生产不能插入表记录
  • 11.Three.js使用indexeddb前端缓存模型优化前端加载效率
  • 功能测试:方法、流程与工具介绍
  • 【Orange Pi 5 Linux 5.x 内核编程】-设备驱动中的sysfs
  • 微信小程序-全局数据共享/页面间通信
  • java计算机毕设课设—Java聊天室(附源码、文章、相关截图、部署视频)
  • 图像识别基础认识
  • 使用 OpenCV 读取和显示图像与视频
  • 【1】Elasticsearch 30分钟快速入门
  • 教材管理系统设计与实现
  • 软考(中级-软件设计师)数据库篇(1101)
  • 安装nscd及glibc包冲突降级【centos7】
  • Qt字符编码
  • Ubuntu用docker安装AWVS和Nessus(含破解)
  • tauri开发中如果取消了默认的菜单项,复制黏贴撤销等功能也就没有了,解决办法
  • HNU-小学期-专业综合设计
  • Linux安装es和kibana
  • 第二十六章 Vue之在当前组件范围内获取dom元素和组件实例
  • Markdown 区块
  • ctf文件上传题小总结与记录
  • 什么是QAM
  • GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序
  • 面试题整理 3
  • 数据结构(Java)—— 认识泛型
  • 处理后的视频如何加上音频信息?
  • 02LangChain 实战课——安装入门
  • Python函数中关键字参数、位置参数、默认参数有何不同
  • PNG 格式和 JPG 格式都什么时候用
  • Qt 练习做一个登录界面