梯度提升决策树树(GBDT)公式推导
### 逻辑回归的损失函数
逻辑回归模型用于分类问题,其输出是一个概率值。对于二分类问题,逻辑回归模型的输出可以表示为:
\[ P(y = 1 | x) = \frac{1}{1 + e^{-F(x)}} \]
其中 \( F(x) \) 是一个线性组合函数,通常表示为:
\[ F(x) = \sum_{m=0}^{M} h_m(x) \]
这里的 \( h_m(x) \) 是学习到的决策树。
### 损失函数的推导
对于单个样本 \((x_i, y_i)\),逻辑回归的损失函数通常采用对数似然损失(也称为交叉熵损失),定义如下:
\[ \text{loss}(x_i, y_i) = -y_i \log \hat{y}_i - (1 - y_i) \log (1 - \hat{y}_i) \]
其中:
- \( \hat{y}_i \) 是模型预测的概率。
- \( y_i \) 是实际的标签(0 或 1)。
### GBDT 中的损失函数
在 GBDT 中,我们假设第 \( k \) 步迭代之后当前学习器为 \( F(x) \),则损失函数可以写为:
\[ \text{loss}(x_i, y_i | F(x)) = y_i \log \left(1 + e^{-F(x_i)}\right) + (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right] \]
### 推导步骤
1. **定义预测概率**:
\[ \hat{y}_i = \frac{1}{1 + e^{-F(x_i)}} \]
2. **代入损失函数**:
\[ \text{loss}(x_i, y_i) = -y_i \log \hat{y}_i - (1 - y_i) \log (1 - \hat{y}_i) \]
\[ = -y_i \log \left(\frac{1}{1 + e^{-F(x_i)}}\right) - (1 - y_i) \log \left(1 - \frac{1}{1 + e^{-F(x_i)}}\right) \]
3. **简化表达式**:
\[ \text{loss}(x_i, y_i) = -y_i \log \left(\frac{1}{1 + e^{-F(x_i)}}\right) - (1 - y_i) \log \left(\frac{e^{-F(x_i)}}{1 + e^{-F(x_i)}}\right) \]
\[ = -y_i \log \left(\frac{1}{1 + e^{-F(x_i)}}\right) - (1 - y_i) \left[\log(e^{-F(x_i)}) - \log(1 + e^{-F(x_i)})\right] \]
\[ = -y_i \log \left(\frac{1}{1 + e^{-F(x_i)}}\right) - (1 - y_i) \left[-F(x_i) - \log(1 + e^{-F(x_i)})\right] \]
\[ = y_i \log \left(1 + e^{-F(x_i)}\right) + (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right] \]
求梯度
为了求出给定损失函数的梯度,我们需要对损失函数关于 \( F(x_i) \) 求导。给定的损失函数是:
\[
\text{loss}(x_i, y_i | F(x)) = y_i \log \left(1 + e^{-F(x_i)}\right) + (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right]
\]
我们分两部分来计算梯度:
1. 对于第一部分 \( y_i \log \left(1 + e^{-F(x_i)}\right) \)
2. 对于第二部分 \( (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right] \)
### 第一部分的梯度
对于 \( y_i \log \left(1 + e^{-F(x_i)}\right) \),我们对其求导:
\[
\frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 + e^{-F(x_i)}\right) \right]
\]
使用链式法则:
\[
\frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 + e^{-F(x_i)}\right) \right] = y_i \cdot \frac{\partial}{\partial F(x_i)} \left[ \log \left(1 + e^{-F(x_i)}\right) \right]
\]
\[
= y_i \cdot \frac{1}{1 + e^{-F(x_i)}} \cdot (-e^{-F(x_i)})
\]
\[
= y_i \cdot \frac{-e^{-F(x_i)}}{1 + e^{-F(x_i)}}
\]
\[
= -y_i \cdot \frac{e^{-F(x_i)}}{1 + e^{-F(x_i)}}
\]
### 第二部分的梯度
对于 \( (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right] \),我们对其求导:
\[
\frac{\partial}{\partial F(x_i)} \left[ (1 - y_i) \left(F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right) \right]
\]
\[
= (1 - y_i) \cdot \left[ \frac{\partial}{\partial F(x_i)} F(x_i) + \frac{\partial}{\partial F(x_i)} \log \left(1 + e^{-F(x_i)}\right) \right]
\]
\[
= (1 - y_i) \cdot \left[ 1 + \frac{1}{1 + e^{-F(x_i)}} \cdot (-e^{-F(x_i)}) \right]
\]
\[
= (1 - y_i) \cdot \left[ 1 - \frac{e^{-F(x_i)}}{1 + e^{-F(x_i)}} \right]
\]
\[
= (1 - y_i) \cdot \left[ \frac{1 + e^{-F(x_i)} - e^{-F(x_i)}}{1 + e^{-F(x_i)}} \right]
\]
\[
= (1 - y_i) \cdot \left[ \frac{1}{1 + e^{-F(x_i)}} \right]
\]
### 合并两部分
将两部分合并起来:
\[
\frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 + e^{-F(x_i)}\right) + (1 - y_i) \left[F(x_i) + \log \left(1 + e^{-F(x_i)}\right)\right] \right]
\]
\[
= -y_i \cdot \frac{e^{-F(x_i)}}{1 + e^{-F(x_i)}} + (1 - y_i) \cdot \frac{1}{1 + e^{-F(x_i)}}
\]
\[
= -y_i \cdot \frac{e^{-F(x_i)}}{1 + e^{-F(x_i)}} + \frac{1 - y_i}{1 + e^{-F(x_i)}}
\]
\[
= \frac{-y_i e^{-F(x_i)} + 1 - y_i}{1 + e^{-F(x_i)}}
\]
\[
= \frac{1 - y_i - y_i e^{-F(x_i)}}{1 + e^{-F(x_i)}}
\]
\[
= \frac{1 - y_i - y_i e^{-F(x_i)}}{1 + e^{-F(x_i)}}
\]
最终得到的梯度为:
\[
\frac{\partial \text{loss}}{\partial F(x_i)} = \frac{1 - y_i - y_i e^{-F(x_i)}}{1 + e^{-F(x_i)}}
\]
简化
\[
\frac{\partial \text{loss}}{\partial F(x_i)} = \frac{1}{1 + e^{-F(x_i)}} - y_i
\]
### 总结
通过上述推导,我们可以看到逻辑回归的损失函数如何被应用于 GBDT 中。在每一步迭代中,GBDT 会根据当前模型的预测和实际标签之间的差异来更新新的弱学习器(通常是决策树),从而逐步减少损失函数的值。
这个过程确保了模型能够逐步逼近最优解,同时通过负梯度方向进行参数更新,有效地减少了损失函数的值。
相关文章:
梯度提升决策树树(GBDT)公式推导
### 逻辑回归的损失函数 逻辑回归模型用于分类问题,其输出是一个概率值。对于二分类问题,逻辑回归模型的输出可以表示为: \[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \] 其中 \( F(x) \) 是一个线性组合函数,通常表示为ÿ…...
【MySQL】表的基本操作
??表的基本操作 文章目录: 表的基本操作 创建查看表 创建表 查看表结构 表的修改 表的重命名 表的添加与修改 删除表结构 总结 前言: 在数据库中,数据表是存储和组织数据的基本单位,对于数据表的操作是每个程序员需要烂熟…...
项目中使用的是 FastJSON(com.alibaba:fastjson)JSON库
从你的 pom.xml 文件中可以看到,项目明确依赖了以下 JSON 库: FastJSON: <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </depende…...
Flutter中PlatformView在鸿蒙中的使用
Flutter中PlatformView在鸿蒙中的使用 概述在Flutter中的处理鸿蒙端创建内嵌的鸿蒙视图创建PlatformView创建PlatformViewFactory创建plugin,注册platformview注册插件 概述 集成平台视图(后称为平台视图)允许将原生视图嵌入到 Flutter 应用…...
音频入门(一):音频基础知识与分类的基本流程
音频信号和图像信号在做分类时的基本流程类似,区别就在于预处理部分存在不同;本文简单介绍了下音频处理的方法,以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…...
规避路由冲突
路由冲突是指在网络中存在两个或多个路由器在进行路由选择时出现矛盾,导致网络数据包无法正确传输,影响网络的正常运行。为了规避路由冲突,可以采取以下措施: 一、合理规划IP地址 分配唯一IP:确保每个设备在网络中都有…...
SQLmap 自动注入 -02
1: 如果想获得SQL 数据库的信息,可以加入参数: -dbs sqlmap -u "http://192.168.56.133/mutillidae/index.php?pageuser-info.php&usernamexiaosheng&passwordabc&user-info-php-submit-buttonViewAccountDetails" --batch -p username -dbs…...
4.JoranConfigurator解析logbak.xml
文章目录 一、前言二、源码解析GenericXMLConfiguratorlogback.xml解析通过SaxEvent构建节点model解析model节点DefaultProcessor解析model 三、总结 一、前言 上一篇介绍了logback模块解析logback.mxl文件的入口, 我们可以手动指定logback.xml文件的位置, 也可以使用其它的名…...
React 19 新特性总结
具体详见官网: 中文:React 19 新特性 英文:React 19 新特性 核心新特性 1. Actions 解决问题:简化数据变更和状态更新流程 以前需要手动处理待定状态、错误、乐观更新和顺序请求需要维护多个状态变量(isPending, error 等) 新…...
kafka学习笔记6 ACL权限 —— 筑梦之路
在Kafka中,ACL(Access Control List)是用来控制谁可以访问Kafka资源(如主题、消费者组等)的权限机制。ACL配置基于Kafka的kafka-acls.sh工具,能够管理对资源的读取、写入等操作权限。 ACL介绍 Kafka的ACL是…...
【Java】Java抛异常到用户界面公共封装
前言 在Java中处理代码运行异常是常见的技术点之一,我们大部分会使用封装的技巧将异常进行格式化输出,方便反馈给用户界面,也是为了代码复用 看看这行代码是怎么处理异常的 CommonExceptionType.SimpleException.throwEx("用户信息不…...
基于Redis实现短信验证码登录
目录 1 基于Session实现短信验证码登录 2 配置登录拦截器 3 配置完拦截器还需将自定义拦截器添加到SpringMVC的拦截器列表中 才能生效 4 Session集群共享问题 5 基于Redis实现短信验证码登录 6 Hash 结构与 String 结构类型的比较 7 Redis替代Session需要考虑的问题 8 …...
步入响应式编程篇(二)之Reactor API
步入响应式编程篇(二)之Reactor API 前言回顾响应式编程Reactor API的使用Stream引入依赖Reactor API的使用流源头的创建 reactor api的背压模式发布者与订阅者使用的线程查看弹珠图查看形成新流的日志 前言 对于响应式编程的基于概念,以及J…...
Oracle SQL: TRANSLATE 和 REGEXP_LIKE 的知识点详细分析
目录 前言1. TRANSLATE2. REGEXP_LIKE3. 实战 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. TRANSLATE TRANSLATE 用于替换字符串中指定字符集的每个字符,返回替换后的字符串 逐一映射输入字…...
RabbitMQ 在实际应用时要注意的问题
1. 幂等性保障 1.1 幂等性介绍 幂等性是数学和计算机科学中某些运算的性质,它们可以被多次应⽤,⽽不会改变初始应⽤的结果. 应⽤程序的幂等性介绍 在应⽤程序中,幂等性就是指对⼀个系统进⾏重复调⽤(相同参数),不论请求多少次,这些请求对系统的影响都是相同的效果. ⽐如数据库…...
算法日记8:StarryCoding60(单调栈)
一、题目 二、解题思路: 题意为让我们找到每个元素的左边第一个比它小的元素,若不存在则输出-1 2.1法一:暴力(0n2) 首先,我们可以想到最朴素的算法:直接暴力两层for达成目标核心代码如下&…...
大象机器人发布首款穿戴式数据采集器myController S570,助力具身智能数据收集!
myController S570 具有较高的数据采集速度和远程控制能力,大大简化了人形机器人的编程。 myController S570 是一款可移动的轻量级外骨骼,具有 14 个关节、2 个操纵杆和 2 个按钮,它提供高数据采集速度,出色的兼容性,…...
【银河麒麟高级服务器操作系统】业务访问慢网卡丢包现象分析及处理过程
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:product.kylinos.cn 开发者专区:developer.kylinos.cn 文档中心:document.kylinos.cn 交流论坛:forum.kylinos.cn 服务器环境以及配置 【内核版本…...
C语言之饭店外卖信息管理系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之饭店外卖信息管理系统 目录 设计题目设计目的设计任务描述设计要求输入和输出要求验…...
记一次 .NET某数字化协同管理系统 内存暴涨分析
一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doublemapper__deleted_ 字样,问我为啥会这样&a…...
[智能体-69]:重新认知MCP:协议不生产智能,只是AI全域交互的标准化基石
MCP只是提供了大模型、编排调度、外部工具能够进行结构化交流的标准,而整个系统的智能主要依赖编排调度,与外部软件系统的交互取决于外部工具,包括外部语音交互、视觉交互、数字化交互。当下MCP(Model Context Protocol࿰…...
自制极低频电流探头:负电阻补偿原理与低频方波测量实践
1. 项目概述:为极低频电流测量而生在电子测试领域,电流探头是个再常见不过的工具,无论是排查开关电源的纹波,还是分析电机驱动的波形,都离不开它。但如果你尝试用市面上常见的电流探头去观察一个频率低至几赫兹&#x…...
Taotoken如何帮助教育科技产品实现个性化学习辅导
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken如何帮助教育科技产品实现个性化学习辅导 1. 场景与挑战 教育科技公司在开发个性化学习助手时,常常面临一个核…...
氘可来昔替尼常见副作用为鼻咽炎头痛及腹泻,如何应对?
任何口服药物的临床价值,都必须在疗效与安全性的天平上找到精准的平衡点。氘可来昔替尼以PASI 75应答率的全面胜出证明了自己在银屑病治疗中的卓越地位,而其不良反应谱同样经过了严苛的临床验证。鼻咽炎、头痛和腹泻构成了这款药物最需关注的三大安全信号…...
对比不同模型在创意生成任务中的效果与token消耗差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比不同模型在创意生成任务中的效果与token消耗差异 在为一场创意大赛准备素材时,我们面临一个常见的选择:…...
收藏|2026年大模型算法岗崛起!程序员小白入门高薪赛道全攻略
前些年,算法岗位一直稳居技术圈高薪行列,无数程序员争相入局,也成为计算机专业毕业生求职首选方向。 伴随大模型技术飞速迭代落地,行业就业格局迎来重大变革。如今含金量最高、人才缺口最大、长期发展潜力顶尖的岗位,已…...
公共卫生机器学习项目中的算法公平性实践:ACAR框架详解
1. 项目概述:当机器学习遇见公共卫生,公平性为何成为“必答题”?在公共卫生领域,机器学习(ML)正以前所未有的速度渗透到疾病监测、风险分层和资源分配等核心环节。想象一下,一个模型被用来预测某…...
3步解决英雄联盟回放难题:ROFL-Player终极使用指南
3步解决英雄联盟回放难题:ROFL-Player终极使用指南 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你是否曾经遇到过这样的烦…...
机器学习在宇宙中微子快味转换检测中的实践:从逻辑回归到天体物理模拟集成
1. 项目概述:当机器学习遇见宇宙深处的“幽灵粒子” 在宇宙最狂暴的舞台——核心坍缩超新星(CCSN)和双中子星并合(NSM)事件的中心,上演着一场肉眼无法观测的微观物理盛宴。这里的主角是中微子,这…...
MySQL 分区表实战:大表治理的利器与陷阱
开场白 分区表这个东西,我之前一直觉得就是个语法糖,直到有一次运维一张 2 亿行的日志表,查询慢到飞起,索引也建不动了,才认真研究分区表。结果发现分区表确实好用,但坑也不少——分区键选错了、分区裁剪没…...
