XGBoost,NVIDIA是什么

目录

XGBoost

算法层面

什么是 XGBoost

GBDT是什么

GBDT中的GB

为何选择 XGBoost?

XGBoost 的优势和属性

XGBoost 和数据科学家

为何 XGBoost 在 GPU 上表现更出色

XGBoost + RAPIDS

GPU 加速的 XGBoost

NVIDIA是什么

使用 Spark + XGBoost 的 GPU 加速端到端数据流程


XGBoost

XGBoost 是一个开源软件库,在梯度提升框架下执行优化的分布式梯度提升机器学习算法。

该算法在GBDT的基础之上,在算法层面和系统设计层面都做了一些创新性的改进,可以把XGBoost看作是GBDT更好更快的实现

算法层面

(1)在GBDT目标函数的基础上,在对优化目标求解的时候使用了二阶导数的信息,因此会使优化目标的定义更加精确,训练速度会更快;此外,XGBoost在优化目标函数中加入了正则项,这会限制模型的复杂度,防止过拟合的发生。

(2)提出了一种处理缺失值的算法,XGBoost能够自动对缺失值进行处理

(3)在树生成选择特征划分节点的时候,通过加权分位数草图算法,预先对每个特征建立候选的划分节点,不在使用原先的贪婪算法(遍历每个特征所有取值),从而大大加快训练速度

系统设计层面

(1)对训练的每个特征排序并且以块(block)的结构存储在内存中,方便后续训练迭代重复使用,减少计算量。对于不同的特征的特征划分点,XGBoost分别在不同的线程中并行选择分裂的最大增益,从而实现了并行训练。

(2)提出了一种有效的缓存感知块结构用于树模型的核外学习

下面我们将分别对上述5项进行分析。

什么是 XGBoost?

即极端梯度提升,是可扩展的分布式梯度提升决策树 (GBDT) 机器学习库。XGBoost 提供并行树提升功能,是用于回归、分类和排名问题的先进机器学习库。

首先掌握 XGBoost 所构建的机器学习概念和算法(监督机器学习、决策树、集成学习和梯度提升)对理解 XGBoost 至关重要。

监督式机器学习使用算法来训练模型,利用标签和特征在数据集中查找模式,然后使用经过训练的模型预测新数据集特征上的标签。

利用标签在数据集中查找模式。

决策树可创建一个模型,该模型通过评估 If-Then-Else True/False 特征问题树来预测标签,并估算做出正确决策的概率所需的最少问题数量。

决策树可用于利用分类来预测类别,或利用回归来预测连续数值。在以下简单示例中,决策树用于根据卧室的大小和数量(特征)来估算房价(标签)。

决策树。

GBDT是什么

GBDT是Gradient Boosting Decision Tree的简写,中文为梯度提升决策树,是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。

GBDT中的GB

GB代表的是Gradient Boosting,意为梯度提升,梯度是一种数学概念,一个函数的梯度方向是函数上升最快的方向,相反的,负梯度方向是函数下降最快的方向。

梯度提升决策树 (GBDT) 是一种类似于随机森林的决策树集成学习算法,用于分类和回归。

集成学习算法结合了多种机器学习算法,可获得更出色的模型。

随机森林和 GBDT 都构建了由多个决策树组成的模型。不同之处在于树的构建和组合方式。

随机森林和 GBDT 都构建了由多个决策树组成的模型。

随机森林使用一种名为 Bagging 的技术,通过数据集的随机自助抽样样本并行构建完整的决策树。最终得到的预测结果是所有决策树预测结果的平均值

术语“梯度提升”源自“提升”或改进单个弱模型的理念,通过将单个弱模型与大量其他弱模型相结合,生成统一的强大模型。梯度提升是提升的扩展,其中附加生成弱模型的过程被正式确定为目标函数上的梯度下降算法。梯度提升为下一个模型设定了目标结果,以尽可能减少错误。每个案例的目标结果都基于与预测相关的误差梯度(因此称为梯度提升)。

GBDT 以迭代方式训练一组浅层决策树,每次迭代都使用上一个模型的残差拟合下一个模型。最终预测是所有树预测的加权和。

随机森林“Bagging”可大幅减少差异和过拟合,

GBDT“Boosting”则可减少偏差和欠拟合。

XGBoost 是一种可扩展且高度准确的梯度提升实现,它突破了提升树算法的计算能力极限,主要用于提升机器学习模型性能,提高计算速度。使用 XGBoost 时,树是并行构建的,而不是像 GBDT 那样按顺序构建。XGBoost 遵循 level-wise 策略,扫描梯度值并使用这些部分和来评估训练集中每个可分割点的分割质量。

为何选择 XGBoost?

由于帮助个人和团队赢得了几乎所有 Kaggle 结构化数据竞赛,XGBoost 在过去几年中获得了极大的青睐。在这些竞赛中,公司和研究人员发布数据,之后统计师和数据挖掘者竞争生成预测和描述数据的优质模型。

最初构建了 XGBoost 的 Python 和 R 的执行。由于 XGBoost 的流行,如今 XGBoost 已经实现了为 Java、Scala、Julia、Perl 和其他语言提供包。这些执行向更多的开发者开放了 XGBoost 库,并提高了它在 Kaggle 社区中的吸引力。

XGBoost 的优势和属性

XGBoost 的优势和属性列表非常丰富,包括以下内容:

  • 全球积极为 XGBoost 开源开发做出贡献的数据科学家数量庞大,且正在不断增长
  • 在广泛的应用中使用,包括解决回归、分类、排名和用户定义的预测挑战中的问题
  • 一个高度可移植的库,目前在 OS X、Windows 和 Linux 平台上运行
  • 支持 AWS、Azure、Yarn 集群和其他生态系统的云集成
  • 在各个垂直市场领域的多个组织中积极生产使用
  • 一个专为高效、灵活和可便携而构建的库

XGBoost 和数据科学家

对于数据科学家来说,值得注意的是,与其他算法相比,XGBoost 和 XGBoost 机器学习模型在预测性能和处理时间方面具有出色的组合。各种基准研究都证实了这一点,并进一步解释了它对数据科学家的吸引力。

为何 XGBoost 在 GPU 上表现更出色

使用 XGBoost 处理由 CPU 提供动力的机器学习任务实际上可能需要数小时才能运行。这是因为创建高度准确的一级预测结果需要创建数千个决策树,并测试大量参数组合。

图形处理器或 GPU 配备由数千个小型高效核心组成的大规模并行架构,可以同时启动数千个并行线程,能够强力支持计算密集型任务。

CPU 与 GPU 的对比。

NVIDIA 开发了 RAPIDS™,这是一个开源的数据分析和机器学习加速平台,或完全在 GPU 中执行端到端数据科学训练流程。它依赖于 NVIDIA CUDA® 基元进行低级别计算优化,但通过用户友好型 Python 界面实现 GPU 并行结构和高内存带宽。

RAPIDS 专注于分析和数据科学的常见数据准备任务,提供了一个熟悉的 DataFrame API,与 scikit-learn 和各种机器学习算法集成,无需支付典型的序列化成本。这可加速端到端流程(从数据准备到机器学习,再到深度学习)。RAPIDS 还包括对多节点、多 GPU 部署的支持,大大加快了对更大规模数据集的处理和训练。

机器学习和深度学习,尽在 GPU。

XGBoost + RAPIDS

RAPIDS 团队与 Distributed Machine Learning Common (DMLC) XGBoost 组织密切合作,而且 XGBoost 现已包含无缝嵌入式 GPU 加速。这显著提升了模型训练的速度,并提高了预测的准确性。

XGBoost 现基于 GoAI 接口标准而构建,从 cuDF、cuPY、Numba、PyTorch 等提供零拷贝数据导入。Dask API 可轻松扩展到多个节点或多个 GPU,并且 RAPIDS 内存管理器 (RMM) 与 XGBoost 集成,因此您可以共享单个高速内存池。

GPU 加速的 XGBoost

GPU 加速的 XGBoost 算法利用并行前缀快速求和运算来扫描所有可能的分割,并通过并行基数排序对数据进行重新分区。此算法为给定的提升迭代构建决策树,一次生成一层,并在 GPU 上同时处理整个数据集。

NVIDIA是什么

NVIDIA是GPU(图形处理器)的发明者,也是人工智能计算的引领者。我们创建了世界上最大的游戏平台和世界上最快的超级计算机。我们是自动驾驶汽车,智能机器和物联网的大脑。

使用 Spark + XGBoost 的 GPU 加速端到端数据流程

NVIDIA 深知,大规模机器学习可为数据科学家和开发者以及最终用户提供强大的预测能力。但这种大规模学习取决于克服本地和云基础设施面临的关键难题,例如加速海量数据的预处理,然后加速计算密集型模型训练。

NVIDIA 首次发布的 Spark-XGBoost 支持跨 Apache Spark 节点的 XGBoost 机器学习模型的训练和推理。这有助于使其成为企业级分布式机器学习的先进机制

GPU 加速的 Spark XGBoost 提高了海量数据的预处理速度,允许在 GPU 显存内实现更大的数据量,并缩短了 XGBoost 的训练和调优时间。

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

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

相关文章

晨控CK-GW208与三菱L系列PLC以TCP通讯手册

晨控CK-GW208是一款支持标准工业以太网协议的IO-LINK主站网关,方便用户快速便捷的集成到 PLC 等控制系统中。 CK-GW208主站网关集成 8 路 IO-LINK 通信端口,采用即插即用模式,无需繁琐的配置,减轻现场安装调试的工作量。为了满足…

如何撰写具有传播力的品牌软文?

企业为了能将自己的品牌宣传推广出去,不论是在品牌初创还是成熟阶段都会撰写很多的新闻软文稿件发布在各大媒体平台上,为的就是能起到持续宣传和影响的效果! 软文不但要求短小精悍,更注重内容的精准。不管是什么类型的文章&#…

POSTGRESQL 如何用系统函数来诊断权限问题

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

2023MySQL+MyBatis知识点整理

文章目录 主键 外键 的区别?什么是范式?什么是反范式?什么是事务?MySQL事务隔离级别?MySQL事务默认提交模式?MySQL中int(1)和int(10)的区别MySQL 浮点数会丢失精度吗?MySQL支持哪几种时间类型&a…

springcloud3 GateWay章节-Nacos+gateway动态路由负载均衡4

一 工程结构 1.1 工程 1.2 搭建gatewayapi工程 1.pom文件 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!--gateway--&g…

复习之web服务器--apache

PS&#xff1a;Vim复制小技巧 一、实验环境 两台虚拟机 (nodea,nodeb)配置ip搭建软件仓库关闭selinux [rootftp Desktop]# hostnamectl set-hostname nodea.westos.org [rootftp Desktop]# hostname nodea.westos.org [rootftp Desktop]# ifconfig enp1s0: flags4163<UP,B…

大数据开发要学习什么?学完又能做什么

学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以上都是使用Java开发语言&#xff0c;所以如果要学习大数据技术&#xff0c;首先要掌握Java基础语法以及JavaEE方向的相关知识。 2、MySQL数据库 这是学习大数据必须掌握的知识之一。数据的操作语言是…

Vue2向Vue3过度核心技术组件通信

目录 1 组件基础知识scoped解决样式冲突1.1 默认情况&#xff1a;1.2 代码演示1.3 scoped原理1.4 总结 2 组件基础知识data必须是一个函数2.1 data为什么要写成函数2.2 代码演示2.3 总结 3 组件通信3.1 什么是组件通信&#xff1f;3.2 组件之间如何通信3.3 组件关系分类3.4 通信…

为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)

文章目录 前言一、Eureka是什么&#xff1f;二、Nacos是什么&#xff1f;三、Nacos和Eureka的区别3.1 支持的CAP3.2连接方式3.3 服务异常剔除3.4 操作实例方式 总结 前言 为什么如今微服务注册中心用Nacos相对比用Eureka的多了&#xff1f;本文章将介绍他们之间的区别和优缺点…

【element-ui】el-dialog改变宽度

dialog默认宽度为父元素的50%&#xff0c;这就导致在移动端会非常的窄&#xff0c;如图1&#xff0c;需要限定宽度。 解决方法&#xff1a;添加custom-class属性&#xff0c;然后在style中编写样式&#xff0c;注意&#xff0c;如果有scoped限定&#xff0c;需要加::v-deep &l…

浅谈Spark的RDD、部署模式

一、RDD Spark RDD&#xff08;弹性分布式数据集&#xff09;&#xff0c;弹性是指Spark可以通过重新计算来自动重建丢失的分区。 从本质上讲&#xff0c;RDD 是数据元素的不可变分布式集合&#xff0c;跨集群中的节点进行分区&#xff0c;可以与提供转换和操作的低级 API 并行…

到目前为止,所有的关于安卓14的详细介绍

安卓14现在可能已经不远了,谷歌已经进行了五次测试,通常10月份的发布窗口时间很快就会到来。但除了在谷歌I/O 2023上进行简短讨论外,谷歌对正在发生的变化相对沉默。 可以肯定地说,Android 14不会是操作系统有史以来最大的一系列变化,但有很多改进和变化可以让Android保持…

【计算机网络】HTTPs 传输流程

HTTPS和HTTP的区别 1、HTTP协议传输的数据都是未加密的&#xff0c;是明文的&#xff0c;使用HTTP协议传输隐私信息非常不安 HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议&#xff0c;要比http协议安全。 2、HTTPS协议需要到CA申请证书&#xff0c;一般…

apache的ab工具测试网页优化效果速度以及服务器承载

今天为大家介绍一款apache自带的一种的测试网页优化效果速度以及服务器承载的工具——ab.exe。 大家在工作中或者开发中可以使用apache的ab工具来测试自己的网站并发量大小&#xff0c;和某个页面的访问时间。 一、基本用法 如果你是用的是apache的话&#xff0c;那么只要进…

科技资讯|三星再申请智能戒指商标,智能穿戴进入更小型化发展

三星正在积极扩展可穿戴设备生态&#xff0c;近日向英国知识产权局提交了名为“Samsung Curio”的新商标&#xff0c;其分类为“Class 9”&#xff0c;可能会用于未来的智能戒指。 智能戒指&#xff1a; 可穿戴计算机本质上的智能手环、智能项链、智能眼镜和智能戒指&#xff1…

【计算机网络】日志与守护进程

文章目录 日志日志的创建logmessage 函数日志左边部分实现日志右边部分实现 完整代码log.hpp(整体实现)err.hpp (错误信息枚举&#xff09; 守护进程PGID SID TTY 的介绍shell中控制进程组的方式结论 为什么要有守护进程存在&#xff1f;守护进程的创建使用守护进程的条件守护进…

算法 for GAMES

栈 #include <iostream> #include <stack>int main() {std::stack<int> intStack;// 压入元素到堆栈intStack.push(5);intStack.push(10);intStack.push(15);// 查看堆栈顶部元素std::cout << "Top element: " << intStack.top() <…

免费的png打包plist工具CppTextu,一款把若干资源图片拼接为一张大图的免费工具

经常做游戏打包贴图的都知道&#xff0c;要把图片打包为一张或多张大图&#xff0c;要使用打包工具TexturePacker。 TexturePacker官方版可以直接导入PSD、SWF、PNG、BMP等常见的图片格式&#xff0c;主要用于网页、游戏和动画的制作&#xff0c;它可以将多个小图片汇聚成一个…

kafka--技术文档-基本概念-《快速了解kafka》

学习一种新的消息中间键&#xff0c;卡夫卡&#xff01;&#xff01;&#xff01; 官网网址 Apache Kafka 基本概念 Kafka是一种开源的分布式流处理平台&#xff0c;由Apache软件基金会开发&#xff0c;用Scala和Java编写。它是一个高吞吐量的分布式发布订阅消息系统&#xf…

QCC_BES 音频重采样算法实现

+V hezkz17进数字音频系统研究开发交流答疑群(课题组) 这段代码是一个用于将音频数据进行立体声重采样的函数。以下是对代码的解读: 函数接受以下参数: pcm_buf:16位有符号整型的音频缓冲区,存储了输入的音频数据。pcm_len:音频缓冲区的长度。mic1:16位有符号整型的音频…