XGBoost,NVIDIA是什么

news2025/1/13 17:39:33

目录

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.coloradmin.cn/o/927127.html

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

相关文章

【图像分割】实现snake模型的活动轮廓模型以进行图像分割研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

交换机的4种网络结构

级联方式 这是最常用的一种组网方式,它通过交换机上的级联口(UpLink)进行连接。级联可以定义为两台或两台以上的交换机通过一定的方式相互连接。根据需要,多台交换机可以以多种方式进行级联。 在较大的局域网例如园区网 ( 校园…

如何解决全彩LED显示屏像素失控问题

全彩LED显示屏像素失控问题可能由多种原因引起,包括电力问题、驱动器问题、数据连接问题、模块故障等。 要解决这些问题,可以采取以下步骤: 检查电源供应: 确保LED显示屏的电源供应稳定,没有电压波动或电源故障。 检查…

【IEEE会议】2023年第三届IEEE数字化社会与智能系统国际学术会议(DSInS 2023)

2023年第三届IEEE数字化社会与智能系统国际学术会议(DSInS 2023) 2023 3rd International Conference on Digital Society and Intelligent Systems 由西南交通大学主办,悉尼科技大学、四川大学、中南大学社会计算研究中心、西南财经大学、武汉理工大学…

小身板,大能量!迅镭激光-L系列轻载型激光切管机解锁澎湃性能!

薄管容易变形、加工精度不高? 尾料浪费严重、生产效率低下? 成本逐年上升、按压利润空间? 在管材加工过程中您是否遇到这些问题?针对市场痛点,迅镭激光将原有的AK系列6023激光切管机,升级迭代为全新的L系列切管机,该系列切管机投入小、…

决策树算法:ID3,C4.5,CART

目录 ID3 C4.5 CART 总结 对于基本树我将大致从以下四个方面介绍每一个算法:思想、划分标准、剪枝策略,优缺点。 ID3 ID3 算法是建立在奥卡姆剃刀(用较少的东西,同样可以做好事情)的基础上:越是小型的决…

Qt --- 显示相关设置 窗口属性等

主界面,窗口 最小化 最大化 关闭按钮、显示状态自定义: setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮 setWindowFlags(Qt::WindowFlags type) Qt::FrameWindowHint:没有边框的窗口 Qt::Window…

8年测试经验之谈 —— 接口自动化测试requests

1.什么是requests? requests是一个Python第三方库,处理URL资源特别方便 2.安装requests pip3 install requests 如果遇到Permission denied安装失败,请加上sudo重试 3.使用requests 3.1get请求方法 3.1.1基本的get请求 import reques…

RFID读写头在工业产线中的应用有哪些

现如今,随着RFID技术的发展,成本的降低,RFID技术在工业上的应用已经是一件很常见的事情了,越来越多的企业、工厂选择将RFID技术应用在工业生产中,助力企业/工厂加速迈步走向信息化、自动化。 在工业产线中&#xff0c…

向量数据库(第 2 部分):了解其内部结构

这是关于向量数据库的系列文章中的第二篇。正如本系列的第一篇所提到的,2023年上半年关于向量数据库的营销(不幸的是,有些是炒作)非常多,如果你正在阅读这篇文章,你可能对向量数据库在底层是如何工作的&…

gitee创建仓库并上传代码实操记录

1、创建demo库 2、复制地址 3、下载到本地 4、复制文件至demo文件夹下 5、设置忽略文件 编辑文件.gitignore 替换为: # Created by .ignore support plugin (hsz.mobi) /target/* !.mvn/wrapper/maven-wrapper.jar src/test/ ### STS ### .apt_generated .clas…

决策树算法:它们无处不在【01/2】

一、说明 本文首先叙述决策树的概念,进而展开决策树的原理,以及支持理论信息熵,对决策树进行全面描述,如果 您想知道的有关决策树、理论和实施的所有信息,请看此文。 二、介绍 “两条路在一片树林里分道扬镳&#xff0…

k8s之工作负载、Deployment、DaemonSet、StatefulSet、Job、CronJob及GC

文章目录 1、工作负载1.1、定义1.2、分类 2、Deployment2.1、定义2.2、Deployment创建2.3、Deployment 更新机制2.3.1、比例缩放(Proportional Scaling)2.3.2、HPA(动态扩缩容)2.3.2.1、需要先安装metrics-server2.3.2.2、配置hpa…

【LeetCode】1448.统计二叉树中好节点的数目

题目 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 输入:root [3,1,4,3,null,1,5] 输出:4 …

java开发之fastjson

依赖 <!-- fastjson依赖 --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> <…

php_webshell免杀--从0改造你的AntSword

0x00 前言&#xff1a; 为什么会有改造蚁剑的想法&#xff0c;之前看到有做冰蝎的流量加密&#xff0c;来看到绕过waf&#xff0c;改造一些弱特征&#xff0c;通过流量转换&#xff0c;跳过密钥交互。 但是&#xff0c;冰蝎需要反编译去改造源码&#xff0c;再进行修复bug&am…

CSS3盒模型+flex

1.盒模型 标准盒模型: wwidthpaddingborderhheightpaddingborder 怪异盒模型(ie盒模型) wwidth包含了(paddingborder)hheight包含了(paddingborder) 2.CSS3弹性盒(重点新版弹性盒) 弹性盒: 设置为弹性盒后,父元素为容器,子元素为项目弹性盒中存在两根轴,默认水平为主轴,垂…

.netcore grpc截止时间和取消详解

一、截止时间概述 截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。 超过截止时间时&#xff0c;将取消调用。 设定一个截止时间非常重要&#xff0c;因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非…

Qt跨平台无边框窗口探索记录

一、前言 实现的效果为&#xff1a;通过黑色矩形框预操作&#xff0c;鼠标释放时更新窗口。效果图如下&#xff1a; 1.功能 1.1 已实现功能 8个方向的缩放标题栏拖动标题栏双击最大化/正常窗口窗口最小尺寸预操作框颜色与背景色互补多屏幕默认标题栏 1.2 待开发功能 拖动到…

张驰咨询:六西格玛培训哪家好?2024年最新推荐榜单来了!

随着2024年的到来&#xff0c;越来越多的企业和个人开始关注六西格玛&#xff08;6σ&#xff09;管理&#xff0c;以提高工作效率和质量。那么&#xff0c;在众多提供六西格玛培训的机构中&#xff0c;哪家好呢&#xff1f;张驰咨询将为您详细解析。 一、六西格玛培训背景 六…