梯度提升决策树树(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…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
