主要组件

Boosting

«abstract»
Boosting
«abstract»
GBDTBase
GBDT
DART
RF
void GBDT::Init(const Config* gbdt_config, const Dataset* train_data,const ObjectiveFunction* objective_function,const std::vector<const Metric*>& training_metrics) override

初始化,主要是创建样本采样策略data_sample_strategy_,设置目标函数objective_function_,创建tree_learner_,创建train_score_updater_,配置training_metrics_

void GBDT::Train(int snapshot_freq, const std::string& model_output_path) override

训练处理

bool GBDT::TrainOneIter(const score_t* gradients, const score_t* hessians) override

单次迭代训练

void GBDT::Boosting()

计算梯度和海森矩阵

void UpdateScore(const Tree* tree, const int cur_tree_id)

树训练完后更新评分

TreeLearner

«abstract»
TreeLearner
SerialTreeLearner
LinearTreeLearner
FeatureParallelTreeLearner
DataParallelTreeLearner
VotingParallelTreeLearner
GPUTreeLearner
CUDASingleGPUTreeLearner

目标函数ObjectiveFunciton

ObjectiveFunction
BinaryLogLoss
MulticlassSoftmax
MulticlassOVA
RankingObjective
LambdarankNDCG
RankXENDCG
RegressionL2loss
RegressionL1loss
RegressionHuberloss
RegressionFairloss
RegressionPoissonloss
RegressionQuantileloss
RegressionMAPEloss
RegressionGammaloss
RegressionTweedieloss
CrossEntropy
CrossEntropyLambda

二分类对数损失

一般定义为
L(y,f(x))=log(1+exp(−y⋅f(x)))L(y, f(x))=log(1+exp(-y \cdot f(x)))L(y,f(x))=log(1+exp(yf(x)))
其中yyy是标签,取值为{−1,1}\left \{-1,1\right \}{1,1}f(x)f(x)f(x)是模型输出的分数,令z=y⋅f(x)z=y\cdot f(x)z=yf(x),则损失函数为L=log(1+exp(−z))L=log(1+exp(-z))L=log(1+exp(z))
zzz求导有∂L∂z=−exp(−z)1+exp(−z)=−11+exp(z)\frac{\partial L}{\partial z} = \frac{-exp(-z)}{1+exp(-z)} = -\frac{1}{1+exp(z)}zL=1+exp(z)exp(z)=1+exp(z)1,所以对f(x)f(x)f(x)求导有
∂L∂f(x)=∂L∂z⋅∂z∂f(x)=−y1+exp(y⋅f(x))\frac{\partial L}{\partial f(x)} = \frac{\partial L}{\partial z} \cdot \frac{\partial z}{\partial f(x)} = - \frac{y}{1+exp(y \cdot f(x))}f(x)L=zLf(x)z=1+exp(yf(x))y
BinaryLogloss中对损失函数添加了缩放因子sigmoid_,即
L(y,f(x))=log(1+exp(−y⋅σ⋅f(x)))L(y, f(x))=log(1+exp(-y \cdot \sigma \cdot f(x)))L(y,f(x))=log(1+exp(yσf(x)))
f(x)f(x)f(x)求导
∂L∂f(x)=−y⋅σ1+exp(y⋅σ⋅f(x))\frac{\partial L}{\partial f(x)}=-\frac{y \cdot \sigma}{1+exp(y\cdot \sigma \cdot f(x))}f(x)L=1+exp(yσf(x))yσ
BinaryLogloss在计算梯度时添加了样本权重weights_[i]和标签权重label_weight

const double response = -label * sigmoid_ / (1.0f + std::exp(label * sigmoid_ * score[i]));
gradients[i] = static_cast<score_t>(response * label_weight * weights_[i]);

GBDT

GBDT
ObjectiveFunction
SampleStrategy
TreeLearner
Metric
ScoreUpdater

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓基于 FirebaseAuth 实现 google 登录

安卓基于 FirebaseAuth 实现 google 登录 文章目录安卓基于 FirebaseAuth 实现 google 登录1. 前期准备1.1 创建 Firebase 项目1.2 将 Android 应用连接到 Firebase1.3 在 Firebase 控制台中启用 Google 登录2. 在 Android 应用中实现 Google 登录2.1 初始化 GoogleSignInClien…

李宏毅(Deep Learning)--(三)

一.前向传播与反向传播的理解&#xff1a;二.模型训练遇到的问题在模型训练中&#xff0c;我们可能会遇到效果不好的情况&#xff0c;那么我们应该怎么思考切入&#xff0c;找到问题所在呢&#xff1f;流程图如下&#xff1a;第一个就是去看训练的损失函数值情况。如果损失较大…

android studio 运行,偶然会导致死机,设置Memory Settings尝试解决

1、android studio导致死机 鼠标不能动&#xff0c;键盘没有反应&#xff0c;只能硬重启&#xff0c;但是内存并没有用完&#xff0c;cpu也不是100% 2、可能的原因 android studio内存设置的问题&#xff0c;为了限制占用内存&#xff0c;所以手工设置内存最小的一个&#x…

HTB 赛季8靶场 - Outbound

Rustscan扫描我们开局便拥有账号 tyler / LhKL1o9Nm3X2&#xff0c;我们使用rustscan进行扫描 rustscan -a 10.10.11.77 --range 1-65535 --scan-order "Random" -- -A Web服务漏洞探查 我们以账号tyler / LhKL1o9Nm3X2登录webmail&#xff0c;并快速确认版本信息。该…

动态组件和插槽

[Vue2]动态组件和插槽 动态组件和插槽来实现外部传入自定义渲染 组件 <template><!-- 回复的处理进度 --><div v-if"steps.length > 0" class"gain-box-header"><el-steps direction"vertical"><div class"l…

Unreal5从入门到精通之如何实现UDP Socket通讯

文章目录 一.前言二.什么是FSocket1. FSocket的作用2. FSocket关键特性三.创建Socket四.数据传输五.线程安全六.UDPSocketComponentUDPSocketComponent.hUUDPSocketComponent.cpp七.SocketTest测试八.最后一.前言 我们在开发UE 的过程中,会经常使用到Socket通讯,包括TCP,UD…

UI前端大数据处理新趋势:基于边缘计算的数据处理与响应

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;前端大数据的 “云端困境” 与边缘计算的破局当用户在在线文档中实时协作…

Reading and Writing to a State Variable

本节是《Solidity by Example》的中文翻译与深入讲解&#xff0c;专为零基础或刚接触区块链开发的小白朋友打造。我们将通过“示例 解说 提示”的方式&#xff0c;带你逐步理解每一段 Solidity 代码的实际用途与背后的逻辑。Solidity 是以太坊等智能合约平台使用的主要编程语…

c# 深度解析:实现一个通用配置管理功能,打造高并发、可扩展的配置管理神器

文章目录深入分析 ConfigManager<TKey, TValue> 类1. 类设计概述2. 核心成员分析2.1 字段和属性2.2 构造函数3. 数据加载机制4. CRUD 操作方法4.1 添加数据4.2 删除数据4.3 更新数据4.4 查询数据4.5 清空数据5. 数据持久化6. 设计亮点7. 使用示例ConfigManager<TKey, …

运维打铁: Python 脚本在运维中的常用场景与实现

文章目录引言思维导图常用场景与代码实现1. 服务器监控2. 文件管理3. 网络管理4. 自动化部署总结注意事项引言 在当今的 IT 运维领域&#xff0c;自动化和效率是至关重要的。Python 作为一种功能强大且易于学习的编程语言&#xff0c;已经成为运维人员不可或缺的工具。它可以帮…

【零基础入门unity游戏开发——unity3D篇】3D光源之——unity反射和反射探针技术

文章目录 前言实现天空盒反射1、新建一个cube2、全反射材质3、增加环境反射分辨率反射探针1、一样把小球材质调成全反射2、在小球身上加添加反射探针3、设置静态物体4、点击烘培5、效果6、可以修改反射探针区域大小7、实时反射专栏推荐完结前言 当对象收到直接和间接光照后,它…

React Three Fiber 实现 3D 模型点击高亮交互的核心技巧

在 WebGL 3D 开发中&#xff0c;模型交互是提升用户体验的关键功能之一。本文将基于 React Three Fiber&#xff08;R3F&#xff09;和 Three.js&#xff0c;总结 3D 模型点击高亮&#xff08;包括模型本身和边框&#xff09;的核心技术技巧&#xff0c;帮助开发者快速掌握复杂…

卷积神经网络实战:MNIST手写数字识别

夜渐深&#xff0c;我还在&#x1f618; 老地方 睡觉了&#x1f64c; 文章目录&#x1f4da; 卷积神经网络实战&#xff1a;MNIST手写数字识别&#x1f9e0; 4.1 预备知识⚙️ 4.1.1 torch.nn.Conv2d() 三维卷积操作&#x1f4cf; 4.1.2 nn.MaxPool2d() 池化层的作用&#x1f4…

HarmonyOS应用无响应(AppFreeze)深度解析:从检测原理到问题定位

HarmonyOS应用无响应&#xff08;AppFreeze&#xff09;深度解析&#xff1a;从检测原理到问题定位 在日常应用使用中&#xff0c;我们常会遇到点击无反应、界面卡顿甚至完全卡死的情况——这些都可能是应用无响应&#xff08;AppFreeze&#xff09; 导致的。对于开发者而言&am…

湖北设立100亿元人形机器人产业投资母基金

湖北设立100亿元人形机器人产业投资母基金 湖北工信 2025年07月08日 12:03 湖北 &#xff0c;时长01:20 近日&#xff0c;湖北设立100亿元人形机器人产业投资母基金&#xff0c;重点支持人形机器人和人工智能相关产业发展。 人形机器人产业投资母基金由湖北省财政厅依托省政府…

时序预测 | Pytorch实现CNN-LSTM-KAN电力负荷时间序列预测模型

预测效果 代码主要功能 该代码实现了一个结合CNN&#xff08;卷积神经网络&#xff09;、LSTM&#xff08;长短期记忆网络&#xff09;和KAN&#xff08;Kolmogorov-Arnold Network&#xff09;的混合模型&#xff0c;用于时间序列预测任务。主要流程包括&#xff1a; 数据加…

OCR 识别:车牌识别相机的 “火眼金睛”

车牌识别相机在交通管理、停车场收费等场景中&#xff0c;需快速准确识别车牌信息。但实际环境中&#xff0c;车牌可能存在污渍、磨损、光照不均等情况&#xff0c;传统识别方式易出现误读、漏读。OCR 技术让车牌识别相机如虎添翼。它能精准提取车牌上的字符&#xff0c;不管是…

Java面试基础:面向对象(2)

1. 接口里可以定义哪些方法抽象方法&#xff1a;抽象方法是接口的核心部分&#xff0c;所有实现接口的类都必须实现这些方法。抽象方法默认是 public 和 abstract 修饰&#xff0c;这些修饰符可以省略。public interface Animal {void Sound(); }默认方法&#xff1a;默认方法是…

有哪些更加简洁的for循环?循环语句?

目录 简洁的for循环 循环过程修改循环变量 循环语句 不同编程语言支持的循环语句 foreach 无限循环 for循环历史 break和continue 循环判断结束值 循环标签 循环语句优化 循环表达式返回值 简洁的for循环 如果需要快速枚举一个集合的元素&#xff0c;尽管C语言可以…

RK3568/3588 Android 12 源码默认使用蓝牙mic录音

遇到客户一个需求&#xff0c;如果连接了带mic的蓝牙耳机&#xff0c;默认所有的录音要走蓝牙mic通道。这个功能搞了好久&#xff0c;终于搞定了。1. 向RK寻求帮助&#xff0c;先打通 bt sco能力。此时&#xff0c;还无法默认就切换到蓝牙 mic通道&#xff0c;接下来我们需求默…