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

《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.kler.cn/a/377180.html

相关文章:

  • flask框架用法介绍(二):Flask和forms
  • 百度SEO与SEM到底有什么区别?福建企业老板们需要了解的关键点【百度SEO专家】
  • 高效视频制作大提速,视频剪辑软件的高级自定义命令功能批量调整视频的色调、饱和度和亮度,轻松驾驭视频编辑技巧
  • JAVA WEB — HTML CSS 入门学习
  • k8s技术全景:架构、应用与优化
  • PyQt5实战——多脚本集合包,UI以及工程布局(二)
  • ds 启动flink 任务报错
  • Ubuntu22.04 安装图形界面以及XRDP教程
  • 基于vue框架的的考研信息共享平台v0eyp(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 笔记本脱机状态
  • SSM框架的家教预约管理系统-计算机毕业设计源码01499
  • Vxe UI 表格行编辑(默认不显示编辑框,点击后可编辑)
  • 学生成绩查询系统设计与实现
  • css 禁止用户选中元素
  • 【动态规划之斐波那契数列模型】——累加递推型动态规划
  • ELK配置转存redis缓存,采集nginx访问日志
  • linux中级(防火墙firewalld)
  • 汇编练习-1
  • qt QMenu详解
  • 考研资料分享系统的设计与实现(lw+演示+源码+运行)