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

thunder gbm

文章目录

  • 背景
  • 参考官网信息
  • 训练
  • 调参
  • 模型保存
  • 推理

背景

想在 GPU 上使用使用闪电般快速的提升方法?了解这个库就好了。在很多任务上,它都比 LightGBM 和 XGBoost 快。

ThunderGBM 的主要特征如下:

通常是其它库的 10 倍。
支持 Python(scikit-learn)接口。
支持操作系统 Linux。
支持分类、回归和排序。

ThunderGBM 预测和训练的整体流程
ThunderGBM 主要作者包括新加坡国立大学的 Zeyi Wen 和 Qinbin Li、华南理工大学的 Jiashuai Shi 等,指导教师为 NUS 的 Bingsheng He。

参考官网信息

https://gitee.com/Wyq131/thundergbm?_from=gitee_search#key-members-of-thundergbm
https://github.com/Xtra-Computing/thundergbm/blob/master/docs/parameters.md

训练

clf = TGBMClassifier(n_trees =170,depth = 12, max_num_bin=128,bagging=1)
'''
class TGBMModel(depth = 6, num_round = 40, n_device = 1, min_child_weight = 1.0, lambda_tgbm = 1.0, gamma = 1.0, max_num_bin = 255, verbose = 0, column_sampling_rate = 1.0, bagging = 0, n_parallel_trees = 1, learning_rate = 1.0, objective = "reg:linear", num_class = 1, path = "../dataset/test_dataset.txt"))
'''
# 模型训练
begin = time.time()
# clf= RandomForestClassifier(n_estimators=100,
# #                             random_state=1,
#                             n_jobs=-1)
clf.fit(X_train,y_train)

调参

参数跟随机森林类似,关于参数的影响可参考随机森林
在随机森林(Random Forest)中,不同参数的设置会对模型的性能和行为产生影响。下面是一些常见的随机森林参数及其影响:
n_estimators
:决策树的数量。增加树的数量可以提高模型的表达能力和稳定性,但也会增加训练时间和内存消耗。
max_features
:每棵树考虑的特征数。较小的值可以增加树之间的多样性,减少特征间的相关性,但可能会导致模型的偏差增加。较大的值可以使模型更加稳定,但可能会导致过拟合。
max_depth
:树的最大深度。较大的值可以增加模型的表达能力,但也容易导致过拟合。较小的值可以限制模型的复杂度,减少过拟合风险,但可能会导致模型的偏差增加。
min_samples_split
:内部节点分裂所需的最小样本数。较小的值可以使模型更加灵活,但也容易过拟合。较大的值可以增加模型的保守性,避免过拟合。
min_samples_leaf
:叶子节点所需的最小样本数。较小的值可以使模型更加灵活,但也容易过拟合。较大的值可以增加模型的保守性,避免过拟合。
bootstrap
:是否使用自助采样。如果设置为True,则每个决策树的训练集将使用有放回抽样的方式从原始训练集中抽取。这有助于增加模型的多样性,减少方差。如果设置为False,则每个决策树的训练集将使用原始训练集的全部样本。
random_state
:随机种子。通过设置相同的种子,可以确保每次运行时随机性的一致性。
这些参数的最佳设置取决于具体的数据集和问题。通常,可以通过交叉验证来评估不同参数组合的性能,并选择性能最好的组合。增加树的数量、限制树的深度和节点分裂的样本数、增加特征的随机性等方法都可以用于控制模型的复杂度和泛化能力。在调整参数时,需要权衡模型的准确性和计算资源之间的平衡。

(12 封私信 / 80 条消息) 随机森林Random Forests的各个参数对模型的影响? - 知乎 (zhihu.com)
在这里插入图片描述

模型保存

clf.save_model(“path”)

支持多种格式

clf.save_model('thundergbm.json')
clf.save_model('thundergbm.xgb')
clf.save_model('thundergbm.gbm')
clf.save_model('thundergbm.txt')

推理

clf.model.load(“path”)

先实例化,然后导入模型

clf = TGBMClassifier()
# You should specific objective here as in training stage
clf.load_model('path/thundergbm.json')
y_pred = clf.predict(X_test)

推理时,使用json格式比其他几种格式加粗样式时间长一点,txt格式时间最短。

相关文章:

thunder gbm

文章目录 背景参考官网信息训练调参模型保存推理 背景 想在 GPU 上使用使用闪电般快速的提升方法?了解这个库就好了。在很多任务上,它都比 LightGBM 和 XGBoost 快。 ThunderGBM 的主要特征如下: 通常是其它库的 10 倍。 支持 Python&#x…...

数据结构--单链表

前言 上一章,我们讲了数据结构--动态顺序表,我们会发现有以下问题: 1.当我们要头部或者插入或删除时,都需要进行位置挪动,腾出某一个位置,时间复杂度为0(N); 2.增容需要申请新空间,…...

过程:从虚拟机上添加 git 并成功提交到 GitLab 的全过程

Ⅰ、准备工作: 1、Git 查看: 其一、命令:git --version // 此时就能在虚拟机环境下看到 git 的版本为: git version 2.41.0 其二、如何在虚拟机上安装 git : A、命令 : sudo apt-get install git B、然后再输入虚…...

机器学习笔记之优化算法(九)收敛速度的简单认识

机器学习笔记之优化算法——收敛速度的简单认识 引言收敛速度的判别标准 Q \mathcal Q Q-收敛速度 R \mathcal R R-收敛速度关于算法复杂度与收敛速度 引言 本节对收敛速度简单介绍。 收敛速度的判别标准 我们之前几节介绍了线搜索方法 ( Line Search Method ) (\text{Line …...

FPGA学习——Altera IP核调用之PLL篇

文章目录 一、IP核1.1 IP核简介1.2 FPGA中IP核的分类1.3 IP核的缺陷 二、PLL简介2.1 什么是PLL2.2 PLL结构图2.3 C4开发板上PLL的位置 三、IP核调用步骤四、编写测试代码五、总结 一、IP核 1.1 IP核简介 IP核(知识产权核),是在集成电路的可…...

经纬度坐标工具

LngLatUtil :用于计算里程数 import cn.hutool.core.util.ArrayUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Getter; import lombok.Setter;import java.io.FileInputStream; import java.io.Serializable; import java.t…...

如何使用伪元素::before和::after?

伪元素(::before和::after)是CSS中非常有用的特性,它们允许你在元素的内容之前或之后插入额外的内容,并且不需要在HTML结构中添加额外的标记。这样可以方便地在页面上添加装饰性元素、图标、或者样式效果。以下是使用伪元素的基本方法: 1、创…...

Visual Studio Code中对打开的脚本格式统一

什么是Language Server Protocol (LSP)? Language Server Protocol(语言服务器协议,简称LSP)是微软在2016年提出的一套统一的通讯协议方案。LSP定义了一套编辑器或者IDE与语言服务器(Language Server)之间使用的协议&…...

补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现,只有一小部分常用包是存在源码及其注释的,而很多内部包是没有源码,class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法:参考文档。本文主要是根据这篇文章记…...

Git Submodule 更新子库失败 fatal: Unable to fetch in submodule path

编辑本地目录 .git/config 文件 在 [submodule “Assets/CommonModule”] 项下 加入 fetch refs/heads/:refs/remotes/origin/...

Springboot切面打印日志

切面打印完整日志,以下代码用于扫描RestController 注解修饰的接口,并打印相关日志 import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; impor…...

ubuntu上回环设备/dev/loop0占用100%清理

查看磁盘占用情况时: df -h/dev/loopn这些设备在Linux下被称为回环设备。 终端输入: sudo apt autoremove --purge snapd再次查看:...

List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常

1.应用场景,今天生产日志监控到一下ArrayList 进行add 异常,具体日志如下: eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bo…...

桶排序算法

桶排序算法 算法思想概述:桶排序的主要步骤如下: 算法goland实现:图解演示: 算法思想概述: 桶排序(Bucket Sort)是一种非比较性的排序算法,它将待排序的元素分到有限数量的桶&#…...

P8604 [蓝桥杯 2013 国 C] 危险系数

题目背景 抗日战争时期,冀中平原的地道战曾发挥重要作用。 题目描述 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数 DF(x,y)&…...

Excel·VBA表格横向、纵向相互转换

如图:对图中区域 A1:M6 横向表格,转换成区域 A1:C20 纵向表格,即 B:M 列转换成每2列一组按行写入,并删除空行。同理,反向操作就是纵向表格转换成横向表格 目录 横向转纵向实现方法1转换结果 实现方法2转换结果 纵向转横…...

Leetcode-每日一题【剑指 Offer 06. 从尾到头打印链表】

题目 输入一个链表的头节点&#xff0c;从尾到头反过来返回每个节点的值&#xff08;用数组返回&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,3,2]输出&#xff1a;[2,3,1] 限制&#xff1a; 0 < 链表长度 < 10000 解题思路 1.题目要求我们从尾到头反过…...

LeetCode--HOT100题(22)

目录 题目描述&#xff1a;160. 相交链表&#xff08;简单&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;160. 相交链表&#xff08;简单&#xff09; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表…...

产品体系架构202308版

1.前言 当我们不断向前奔跑时&#xff0c;需要回头压实走过的路。不断扩张的同时把相应的内容沉淀下来&#xff0c;为后续的发展铺垫基石。 不知从何时起&#xff0c;产品的架构就面向了微服务/中台化/前后端分离/低代码化/分布式/智能化/运行可观测化的综合体&#xff0c;让…...

Linux systemctl 简单介绍与使用

在Linux下&#xff0c;systemctl是一个管理系统服务的命令。它提供了对systemd服务的控制和管理。 在系统中使用systemctl命令&#xff0c;您可以执行以下操作&#xff1a; 启动服务&#xff1a;systemctl start servicename停止服务&#xff1a;systemctl stop servicename重…...

Windows Defender一键移除工具:终极完整指南,三步彻底关闭系统安全防护

Windows Defender一键移除工具&#xff1a;终极完整指南&#xff0c;三步彻底关闭系统安全防护 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https:/…...

嵌入式开发中的MVC模型应用与实践

1. 嵌入式开发中的MVC模型概述在嵌入式系统开发领域&#xff0c;我们常常面临一个关键挑战&#xff1a;如何组织复杂项目中的代码结构&#xff1f;作为一名有十年经验的嵌入式开发者&#xff0c;我发现很多新手工程师习惯想到哪写到哪&#xff0c;结果项目稍具规模就陷入难以维…...

高德地图JS API报错10009?手把手教你解决USERKEY_PLAT_NOMATCH问题

高德地图JS API报错10009&#xff1f;手把手教你解决USERKEY_PLAT_NOMATCH问题 当你在前端项目中集成高德地图JS API时&#xff0c;突然控制台抛出USERKEY_PLAT_NOMATCH错误&#xff08;错误码10009&#xff09;&#xff0c;这意味着你的密钥与当前使用平台不匹配。这种问题看…...

2026海雅达HDT500手持终端PDA“12米远距扫描”应用案例:造纸厂原纸立库高层纸卷条码采集应用

标准工业原纸卷重达2吨、宽幅近2.8米&#xff0c;在12-15米高的原纸仓库中堆垛高达8-10米。高空扫码怎么破&#xff1f; 传统PDA扫码距离仅1米&#xff0c;难道必须冒生命危险爬上纸堆&#xff1f;海雅达HDT500的12米扫描头如何实现“降维打击”&#xff1f; 如何利用海雅达H…...

大以论文与万方、维普、WPS AI 综合对比(2026)

毕业季论文格式问题频发&#xff0c;手动排版耗时、通用模板不匹配、公式图表易错乱是常态。万方、维普以查重为主&#xff0c;WPS AI 偏向通用办公&#xff0c;而大以论文作为7 年专注毕业论文排版的老牌工具&#xff0c;在专业性、稳定性与院校适配性上更具优势。一、核心对比…...

RustBook 搜索算法大全:从顺序搜索到哈希搜索的完整实现

RustBook 搜索算法大全&#xff1a;从顺序搜索到哈希搜索的完整实现 【免费下载链接】RustBook A book about Rust Data Structures and Algorithms. 项目地址: https://gitcode.com/gh_mirrors/ru/RustBook RustBook 是一本专注于 Rust 数据结构与算法的开源书籍&#…...

AI大模型系统学习路线:零基础入门人工智能,附AI大模型学习与面试资源!【非常详细】

人工智能&#xff08;AI&#xff09;正在重塑全球产业格局&#xff0c;从自动驾驶到医疗诊断&#xff0c;从金融风控到内容创作&#xff0c;AI技术已成为21世纪的核心竞争力。对于零基础学习者而言&#xff0c;构建系统化的学习路径至关重要。1. 明确学习动机职业转型 &#xf…...

csp预习day2

set#include<bits/stdc.h> using namespace std;int main(){// ios::sync_with_stdio(0);// cin.tie(0);// cout.tie(0);int n,m; //值域、询问个数scanf("%d%d",&n,&m);int set[n1]; //大小为n的随机序列for (int i 1; i < n; i){scanf(&qu…...

【架构师通关】理发店排队 + 车库停车,大白话秒懂“进程状态模型”与“PV操作

兄弟们&#xff0c;操作系统的进程管理一直是软考里最让人头疼的“硬骨头” &#x1f9b4;。什么“阻塞”、“挂起”、“信号量”、“PV操作”&#xff0c;听着就像天书 &#x1f4da;。 但今天&#xff0c;飞哥绝不跟你拽学术名词&#xff01;咱们就通过“去理发店剪个头” &a…...

运维养龙虾--腾讯云 CloudQ 上线:把企业云上治理,装进你每天都在用的聊天框

想象一下&#xff1a;凌晨两点&#xff0c;你被告警叫醒&#xff0c;不用登录控制台&#xff0c;不用翻文档&#xff0c;直接在企业微信里问一句"昨晚华东区账单怎么涨了"&#xff0c;2分钟后就拿到了完整的根因分析报告。这不是科幻&#xff0c;这是 CloudQ 正在做的…...