Spark XGBoost的一些问题

2023-10-28

在使用Spark版本的xgboost的时候会有一些单机版本遇不到的问题,可能对使用的人造成一些困扰,经过两周的踩坑,总结一下,希望有帮助

1、输入、预测数据的一致性

Spark版本的XGBoost处理的输入可以是RDD或者DataFrame。由于Spark的机制,在没有显式指定的情况下,是不会保存RDD或者DataFrame的内容的。所以预测之后得到结果的RDD和原本输入的RDD不能够保证对应关系。所以建议对需要预测的RDD输入显式的persist,不太建议cache。


2、样本逐条预测

为了保证输入输出对应的一致性,可以想到可以通过或者XGBoost.booster,通过广播到每一个Executor,然后就可以比较高效的逐条预测,实验过程中发现失败率比较高,不太建议这么做。


3、样本中包含missing value的情况。

当样本中的某列变为Float.NaN的时候,会发现报一个XGBoost train failed的错误,查看每个Executor的情况,可以看到是由于OOM导致的Container错误。这个问题找了很久,最后每个Executor的core数量设置为1,内存为14G解决。  猜测处理missing data导致了对内存的需求变大。


4、CV

在Spark中XGBoost的CV 通常只能通过mllib的Pipeline来做。同时,Spark版本的XGBoost没有eval_list接口,所以每一步的train和test的loss不太直观。根据版本不同,有些版本配置eval_matric后,可以在Spark任务的stdout或者stderr中有每一步的train loss。有些版本则没有这个功能。


5、其他

Spark版本的XGBoost相对于单机版本API和开发完成度低很多,所以如果在单机多线程版本能够满足计算性能需求的情况下,不太建议使用Spark版本。对于Spark版本的XGBoost,官方说法最多支持5TB的数据输入,测试在1TB的数据情况下没有问题。


以上

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark XGBoost的一些问题 的相关文章

  • 关于mipi camera 传输速率的计算

    假设图片的分辨率是 1600x1200 帧率按照 30HZ来计算 在理想状态下 未包含 RGB 信号的前后肩宽度 总传输速率为 1600x1200x24x30 1024 1024 1318 4Mbps 如果是单通道传输 则每通道数据传输速率
  • C++:内存管理

    目录 学习目标 1 C C 内存分布 2 C C 动态内存管理 2 1 C动态内存管理 2 2 C 动态内存管理 3 operator new与operator delete函数 4 new和delete的实现原理 5 定位new表达式 学

随机推荐

  • linux fdisk的分区和格式化和挂载相关操作说明

    注意 分区的时候要umount磁盘之后才能分区 在Ubuntu用fdisk分析需要root用户权限 第一步 先把设备卸载掉 解除占用 caizd ubuntu home share lsblk 查看大小空间 caizd ubuntu hom
  • Air780E

    目录 基础资料 探讨重点 参考阅读 实现功能 硬件准备 软件版本 腾讯云物理网平台接入 1 新建项目 2 新建产品 3 添加设备 4 接入方式选择 5 官方密钥认证设备接入指引 6 示例 采用Python实现 HMAC SHA1 算法 结果
  • python读取txt文件(多种方法)

    原始数据 唐诗一百首 txt 方法1 f open 唐诗一百首 txt encoding gbk txt for line in f txt append line strip print txt line strip 去除首尾空格 enc
  • QT中的数据类型转换总结

    一 QString的转换 QString转QByteArray QByteArray byte QString string byte string toLatin1 QString转String QString string std st
  • spring-kafka 会创建多少线程来消费你的topic

    平时工作中 我们对接kafka主要使用的是spring kafka 但是指定的topic到底如何设置线程数 设置的线程数作用范围是什么 详细很多人并不清楚 先上结论 spring kafka是基于group来分配线程数的 在spring k
  • IDEA提示类注释的wrong tag警告的解决办法

    当创建一个类的时候 给类写上注释时 出现类似于 Wrong tag date less Ctrl F1 这种警告 解决方式是 alt enter gt add to custom tags 之后可以看到修改 红色圈位置 以及警告的消失 转载
  • 对 PhD一年级新生有什么建议?

    来源 https www zhihu com question 32210068 answer 624547698 编辑 深度学习与计算机视觉 声明 仅做学术分享 侵删 作者 王晋东不在家 https www zhihu com quest
  • 开启第三方地图(高德)

    public class OpenGDMapUtil param mActivity 上下文 param sLatLng 开始点的坐标 param sPosition 开锁的位置 param ePosition 结束的位置 param eL
  • 常用的16个Java实用工具类,Java开发人员请收藏!

    在Java中 实用程序类是一个定义一组执行常用功能的方法的类 这篇文章展示了最常用的Java实用程序类及其最常用的方法 类列表及其方法列表都按流行度排序 该数据基于GitHub随机选择的50 000个开源Java项目 希望您可以通过浏览列表
  • cocos creator制作微信抖音小游戏《黄金矿工》

    微信小游戏 抖音小游戏 非常适合个人开发者创业 不用版号 门槛低 同时抖音小游戏的系统算法推荐 能让好的游戏脱颖而出 你要做的就是把游戏做好就可以了 这个系列的文章 配套了视频教程讲解与课程资源 课程源码 下面开始讲解黄金矿工的具体制作流程
  • python安装pillow

    安装pillow python的图形界面库 第一种方法在Dos界面输入pip install pillow 但是不知为何总是失败 搞了好几次都没成功 第二种方法 在 https pypi org 中找到对应的pillow 包括版本windo
  • Exchange Powshell 日常运维

    打开Exchange命令行管理工具 输入以下命令 PS 黄色背景标注为变量 需要根据实际情况修改 给administrator赋权 否则在下面运行Search Mailbox的时候会无法识别该命令 New ManagementRoleAss
  • 解密照片级表现技巧(一些关于UE4建筑表现的废话)

    文章转自虚幻中国论坛 Alex Tsui 各位老司机好 我是Alex 前几天分享自己的FPS项目文件的时候也说过会陆陆续续分享一些项目文件 供像我一样的菜鸟和爱好者学习交流 那么今天就分享一个个人的建筑表现作品 引擎的屏幕高清截图有BUG
  • CE寻找游戏基址

    什么是游戏基址 游戏基址是保持恒定的两部分内存地址的一部分并提供一个基准点 从这里可以计算一个字节数据的位置 基址伴随着一个加到基上的偏移值来确定信息准确的位置 绝对地址 全局基址 一级基址 二级基址 三级基址的关系 第一步 计算机内存一般
  • mysql设置两个日期格式相减的方式

    mysql设置两个日期格式相减的方式 原始数据表数据 select atime btime sec from 数据表 相减得到的并不是秒 特别需要注意 结果 mysql中计算两个Datetime类型的时间间隔 单位为秒 需要转换 1 跨天
  • 【ROS】Ubuntu22.04安装ROS2(Humble Hawksbill)

    ROS 郭老二博文之 ROS目录 0 版本说明 Ubuntu22 04对应的ROS2的版本为Humble Hawksbill ros humble 如果不是在Ubuntu22 04中安装ROS 请参考下面Ubuntu和ROS的版本对应关系
  • 相机的内参标定(实现原理+具体操作流程+实验结果)

    这篇主要是总结梳理一下关于学习到的相机内参标定的知识 计划分为原理介绍 具体操作流程 标定实验结果三个模块 首先先简单解释下为什么要进行相机标定这个操作 我们知道生活中实际使用的相机镜头都是透镜 初中时的物理就讲过 只有通过光心的光线才是沿
  • 代理IP:跨界电商的智能数据引擎

    代理IP在跨界电商中扮演了智能数据引擎的关键角色 其应用在数据采集 市场洞察和竞争分析等方面具有重要意义 多地区数据采集 跨界电商需要了解不同地区的市场趋势 竞争情况等 以制定相应的策略 代理IP允许企业模拟不同地区的IP地址 从而获取多地
  • anaconda必须安装在c盘吗_Anaconda的安装

    什么是Anaconda 官方说法 Anaconda指的是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 通俗说法 Anaconda就是一个工具箱 能对Python等工具进行统一的管理和使用 更加
  • Spark XGBoost的一些问题

    在使用Spark版本的xgboost的时候会有一些单机版本遇不到的问题 可能对使用的人造成一些困扰 经过两周的踩坑 总结一下 希望有帮助 1 输入 预测数据的一致性 Spark版本的XGBoost处理的输入可以是RDD或者DataFrame