CatBoost排序提升算法 14-5给定的残差目标下选择最优的增量函数 公式解析

公式 14-5 的详细解释

公式 14-5 是 CatBoost 排序提升算法中的一个关键公式,用于找到一个增量函数 h h h 来优化残差目标。它具体描述了如何在给定的残差目标下选择最优的增量函数。以下是对公式的详细解析:


公式 14-5

h t = arg ⁡ min ⁡ h 1 n ∑ i = 1 n [ g t ( y i , M t − 1 ( x i ) ) − h ( x i ) ] 2 h_t = \arg \min_h \frac{1}{n} \sum_{i=1}^n \left[ g_t(y_i, M_{t-1}(x_i)) - h(x_i) \right]^2 ht=arghminn1i=1n[gt(yi,Mt1(xi))h(xi)]2


公式的意义

这个公式是对公式 14-4 的具体实现。在第 t t t 次迭代中,CatBoost 寻找一个增量函数 h t ( x ) h_t(x) ht(x),使得它能够最小化所有样本的残差平方误差的平均值。


公式中的符号解释
  1. h t ( x ) h_t(x) ht(x)

    • t t t 次迭代中学到的增量函数,通常由一棵决策树表示。
    • 增量函数的目标是拟合残差 g t g_t gt
  2. arg ⁡ min ⁡ h \arg \min_h argminh

    • 表示通过优化找到使目标函数值最小的函数 h h h
  3. n n n

    • 训练数据的样本总数。
  4. g t ( y i , M t − 1 ( x i ) ) g_t(y_i, M_{t-1}(x_i)) gt(yi,Mt1(xi))

    • 表示第 i i i 个样本在第 t t t 次迭代中的残差。
    • 残差通常由当前模型预测值 M t − 1 ( x i ) M_{t-1}(x_i) Mt1(xi) 和目标值 y i y_i yi 计算得到:
      g t ( y i , M t − 1 ( x i ) ) = − ∂ L ( y i , M t − 1 ( x i ) ) ∂ M t − 1 ( x i ) g_t(y_i, M_{t-1}(x_i)) = -\frac{\partial L(y_i, M_{t-1}(x_i))}{\partial M_{t-1}(x_i)} gt(yi,Mt1(xi))=Mt1(xi)L(yi,Mt1(xi))
    • L L L 是损失函数。
  5. h ( x i ) h(x_i) h(xi)

    • 增量函数 h h h 在样本 x i x_i xi 上的输出值。
  6. [ g t ( y i , M t − 1 ( x i ) ) − h ( x i ) ] 2 \left[ g_t(y_i, M_{t-1}(x_i)) - h(x_i) \right]^2 [gt(yi,Mt1(xi))h(xi)]2

    • 表示残差 g t g_t gt 和增量函数 h h h 之间的平方误差。
  7. 1 n ∑ i = 1 n \frac{1}{n} \sum_{i=1}^n n1i=1n

    • 表示对所有训练样本的平均平方误差。

公式的目标

公式 14-5 的核心目标是最小化残差的平方误差。

  • 当前模型 M t − 1 M_{t-1} Mt1 的预测值可能与目标值 y y y 存在误差。
  • 残差 g t g_t gt 是模型在当前阶段的误差表示。
  • 通过学习一个增量函数 h t h_t ht,将其加入到当前模型中,减少残差 g t g_t gt,从而提升模型的整体预测精度。

具体来说:

  1. g t ( y i , M t − 1 ( x i ) ) g_t(y_i, M_{t-1}(x_i)) gt(yi,Mt1(xi)) 是目标变量 y i y_i yi 与当前模型预测值的误差表示。
  2. 增量函数 h t ( x ) h_t(x) ht(x) 是对该误差的拟合。
  3. 公式通过最小化所有样本的平方误差,找到最优的 h t h_t ht

梯度提升的背景

在梯度提升框架中,模型的迭代过程是逐步优化的:

  1. 模型预测值更新公式:
    M t ( x ) = M t − 1 ( x ) + η h t ( x ) M_t(x) = M_{t-1}(x) + \eta h_t(x) Mt(x)=Mt1(x)+ηht(x)

    • M t ( x ) M_t(x) Mt(x):第 t t t 次迭代后模型的预测值。
    • M t − 1 ( x ) M_{t-1}(x) Mt1(x):第 t − 1 t-1 t1 次迭代后模型的预测值。
    • η \eta η:学习率,用于控制增量函数 h t ( x ) h_t(x) ht(x) 的影响。
    • h t ( x ) h_t(x) ht(x):本轮迭代学到的增量函数。
  2. 残差的作用

    • 当前模型 M t − 1 ( x ) M_{t-1}(x) Mt1(x) 的误差由残差 g t g_t gt 表示。
    • 通过最小化残差的平方误差,学习增量函数 h t ( x ) h_t(x) ht(x),从而修正模型的预测。

公式 14-5 的实现过程
  1. 输入:

    • 当前模型 M t − 1 ( x ) M_{t-1}(x) Mt1(x)
    • 训练样本 ( x i , y i ) (x_i, y_i) (xi,yi)
    • 损失函数 L ( y , M ( x ) ) L(y, M(x)) L(y,M(x))
  2. 计算残差 g t g_t gt

    • 对每个样本 ( x i , y i ) (x_i, y_i) (xi,yi),根据损失函数计算残差:
      g t ( y i , M t − 1 ( x i ) ) = − ∂ L ( y i , M t − 1 ( x i ) ) ∂ M t − 1 ( x i ) g_t(y_i, M_{t-1}(x_i)) = -\frac{\partial L(y_i, M_{t-1}(x_i))}{\partial M_{t-1}(x_i)} gt(yi,Mt1(xi))=Mt1(xi)L(yi,Mt1(xi))
    • 常见损失函数及其残差计算:
      • 均方误差(MSE):
        g t = M t − 1 ( x i ) − y i g_t = M_{t-1}(x_i) - y_i gt=Mt1(xi)yi
      • 对数损失(LogLoss,用于二分类):
        g t = p i − y i g_t = p_i - y_i gt=piyi
        其中 p i = σ ( M t − 1 ( x i ) ) p_i = \sigma(M_{t-1}(x_i)) pi=σ(Mt1(xi)) σ \sigma σ 是 sigmoid 函数。
  3. 拟合增量函数 h t h_t ht

    • 使用当前残差 g t g_t gt 作为目标值,拟合一个增量函数 h t ( x ) h_t(x) ht(x)
    • 增量函数通常由一棵决策树表示。
  4. 更新模型:

    • 将学到的增量函数加入模型:
      M t ( x ) = M t − 1 ( x ) + η h t ( x ) M_t(x) = M_{t-1}(x) + \eta h_t(x) Mt(x)=Mt1(x)+ηht(x)

公式 14-5 的意义

公式 14-5 的意义在于,通过逐步拟合残差来优化模型的预测性能:

  1. 逐步优化目标函数:

    • 每一轮迭代中,模型通过学习残差 g t g_t gt 的最优拟合,逐步减小模型的误差。
  2. 动态调整模型:

    • 随着每次迭代的进行,模型会越来越接近目标值 y y y,从而提升预测性能。
  3. 提高模型的鲁棒性:

    • 通过逐步更新模型,而非一次性拟合目标值,减少了过拟合风险。

CatBoost 中的特殊之处
  1. 排序提升(Ordered Boosting):

    • 在计算公式 14-5 时,CatBoost 使用排序提升(Ordered Boosting),确保增量函数的学习仅使用当前样本之前的数据,避免信息泄漏。
  2. 对称树(Symmetric Trees):

    • CatBoost 中的增量函数 h t ( x ) h_t(x) ht(x) 由对称树表示,这种树结构能够更高效地拟合残差,同时提高训练速度。

例子:计算公式 14-5 的过程

假设我们有以下训练数据:

样本 i i i特征 x i x_i xi目标值 y i y_i yi当前预测值 M t − 1 ( x i ) M_{t-1}(x_i) Mt1(xi)
11.01.00.8
22.00.00.3
33.01.00.6
  1. 计算残差 g t g_t gt

    • 使用均方误差(MSE)作为损失函数:
      g t = M t − 1 ( x i ) − y i g_t = M_{t-1}(x_i) - y_i gt=Mt1(xi)yi
    • 对每个样本:
      • g t ( y 1 ) = 0.8 − 1.0 = − 0.2 g_t(y_1) = 0.8 - 1.0 = -0.2 gt(y1)=0.81.0=0.2
      • g t ( y 2 ) = 0.3 − 0.0 = 0.3 g_t(y_2) = 0.3 - 0.0 = 0.3 gt(y2)=0.30.0=0.3
      • g t ( y 3 ) = 0.6 − 1.0 = − 0.4 g_t(y_3) = 0.6 - 1.0 = -0.4 gt(y3)=0.61.0=0.4
  2. 拟合增量函数 h t ( x ) h_t(x) ht(x)

    • 将残差 g t g_t gt 作为目标值,使用决策树拟合:
      • 输入:特征 x i x_i xi 和目标残差 g t g_t gt
      • 输出:决策树 h t ( x ) h_t(x) ht(x)
  3. 更新模型:

    • 计算新的预测值:
      M t ( x ) = M t − 1 ( x ) + η h t ( x ) M_t(x) = M_{t-1}(x) + \eta h_t(x) Mt(x)=Mt1(x)+ηht(x)

总结

公式 14-5 是 CatBoost 排序提升的核心,用于通过拟合残差优化模型预测性能。关键点包括:

  1. 最小化残差平方误差。
  2. 逐步优化模型预测值。
  3. 避免信息泄漏(通过排序提升)。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用 npm 安装 Yarn

PS E:\WeChat Files\wxid_fipwhzebc1yh22\FileStorage\File\2024-11\spid-admin\spid-admin> yarn install yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后…

力扣617:合并二叉树

给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠&#…

谷歌浏览器支持的开发者工具详解

谷歌浏览器(Google Chrome)是全球最受欢迎的网页浏览器之一,它不仅提供了快速、安全的浏览体验,还为开发者提供了强大的开发者工具。本文将详细介绍如何使用谷歌浏览器的开发者工具,并解答一些常见问题。(本…

HTB:OpenAdmin[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 继续使用nmap对靶机22、80端口进行脚本、服务扫描 使用Dirbuster对靶机网页路径进行递归扫描 ​编辑 尝试在searchsploit中搜索改WebAPP漏洞 横向移动(其实没有横) 启动Metasploit 特权提升 USER_…

IO作业5

设置双信号实现交替生产者线程和消费者线程 #include <myhead.h> int n0; pthread_mutex_t fastmutex;//定义互斥锁 pthread_cond_t cond;//定义条件变量 pthread_cond_t cond2; void *product() {int i;for(i0;i<10;i){n;printf("我生产了一台特斯拉n%d\n"…

Web3.0安全开发实践|BNB链安全开发,这10大实用tips一定要收藏

BNB Chain是Web3世界中最受欢迎的区块链之一&#xff0c;其费用合理、交易迅速以及项目生态系统丰富几大原因吸引了广大用户。与任何的区块链都一样&#xff0c;BNB Chain上的开发者在开发过程中首先考虑的应该是安全问题&#xff1a;因为任何资金的损失都会导致用户对协议及平…

QT开发笔记之小知识

QCoreApplication::aboutToQuit 主事件循环退出前发出的信号&#xff0c;是程序退出前等待QT线程退出回收资源的神器。 官方帮助文档 [signal] void QCoreApplication::aboutToQuit() 该信号在应用程序即将退出主事件循环时发出&#xff0c;例如&#xff1a;当事件循环级别降至…

插入排序(C语言)

直接插入排序的基本思想&#xff1a;把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。 一、步骤 1.给定一个乱序的数组&#xff0c;如 从第一个元素开始排序&#xff0c;当只…

文心一言 VS 讯飞星火 VS chatgpt (389)-- 算法导论25.1 2题

二、为什么要求对于所有的 1 ⩽ i ⩽ n 1⩽i⩽n 1⩽i⩽n&#xff0c;有 w i i 0 w_{ii}0 wii​0 &#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在许多数学和计算应用中&#xff0c;要求矩阵 W W W 的对角线元素 w i i 0 w_{ii} 0 wii​0 是…

Java多线程详解⑦(全程干货!!!)内存可见性 || volatile || JMM || wait notify notifyAll

这里是Themberfue 在上一节中&#xff0c;我们讨论了死锁的概念&#xff0c;产生的场景 &#xff0c;产生的必要条件...... 内存可见性 我们先来看一段百度百科关于 "内存可见性" 的解释 "内存可见性" 就是造成线程安全问题的原因之一 如果是单纯地看…

安装双系统(linux操作系统(debian)安装)

参考博客&#xff1a;戴尔服务器安装Debian11过程_戴尔t130安装debian-CSDN博客 一.腾出一个50G以上的空间&#xff0c;准备装操作系统 1.底部搜索计算机管理&#xff0c;选择磁盘管理 本人已预留400GB磁盘空间安装ubuntu系统&#xff0c;若没有预留空间&#xff0c;则可以选…

心系天下三星W25:记录盛世影像 见证华彩时光

悠然岁月中&#xff0c;被定格的瞬间总是历久弥新。心系天下三星W25以传世经典之姿跃然于掌中&#xff0c;将精致外形与精湛工艺合二为一&#xff0c;彰显出持有者的高雅气质。同时&#xff0c;强悍的影像系统则使之成为光影艺术的记录者&#xff0c;无论是捕捉人生风华&#x…

修改msyql用户密码及更新mysql密码策略

查看mysql中初始的密码策略 SHOW VARIABLES LIKE validate_password% 2. 修改默认密码策略 -- 0 或者 LOW 只验证长度-- 1 或者 MEDIUM 验证长度、数字、大小写、特殊字符-- 2 或者 STRONG 验证长度、数字、大小写、特殊字符、字典文件set global validate_password.policy0;…

f.lux电脑屏幕护眼神器,告别熬夜伤眼

前言 之前分享了一款护眼宝&#xff0c;也是可以调节屏幕色温&#xff0c;但是都是需要手动调节 今天分享一款通过智能调节屏幕亮度&#xff0c;减少长时间使用电脑对眼睛的伤害。它可以根据环境光线和用户的使用习惯&#xff0c;自动调整屏幕亮度&#xff0c;确保用户在不同时…

小家电器产品三维动画渲染怎么做快一些?

在快节奏的市场竞争中&#xff0c;快速制作小家电器产品的三维动画渲染显得尤为重要。本文将为您揭示如何高效完成这一过程&#xff0c;让您的产品以最直观的方式吸引消费者的目光。 一、电器产品动画渲染需要软件 原文出自 电器产品三维动画渲染怎么做-电器产品3D动画渲染需要…

Cesium基础-(Entity)-(model )

里边包含Vue、React框架代码详细步骤、以及代码详细解释 公众号:GISer世界 三维模型地址 :https://download.csdn.net/download/weixin_44857463/89986869 效果: 以下是Cesium中Model的属性和方法: 属性 属性名称类型默认值描述urlstring | Resource.gltf或.glb文件的URLb…

RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》

来源于《A Comprehensive Survey of Retrieval-Augmented Generation (RAG): Evolution, Current Landscape and Future Directions》 一、RAG所解决的问题 如何有效地从外部知识源检索相关信息&#xff0c;如何将这些信息无缝地融入到生成文本中&#xff0c;以及如何在保证生…

带你读懂什么是AI Agent智能体

一、智能体的定义与特性 定义&#xff1a;智能体是一个使用大语言模型&#xff08;LLM&#xff09;来决定应用程序控制流的系统。然而&#xff0c;智能体的定义并不唯一&#xff0c;不同人有不同的看法。Langchain的创始人Harrison Chase从技术角度给出了定义&#xff0c;但更…

数据库类型介绍

1. 关系型数据库&#xff08;RDBMS&#xff09; 关系型数据库是最常见的一类数据库&#xff0c;它们通过表&#xff08;Table&#xff09;来存储数据&#xff0c;表之间通过关系&#xff08;如主键和外键&#xff09;来关联。 • MySQL&#xff1a;开源的关系型数据库管理系统&…

【红帽Linux】简述Linux文件系统结构

原创 厦门微思网络 Linux 文件系统结构划分清晰、功能明确&#xff0c;每个目录都有特定的用途。以下是各个主要目录的介绍&#xff1a; n/bin: 包含系统启动和单用户模式下的基本命令的二进制文件&#xff0c;例如常见的基本命令 ls 和 cp。 n/boot: 保存与系统启动相关的文…