XGB-14:DMatrix的文本输入格式

2024-02-29 16:28
文章标签 输入 格式 14 文本 xgb dmatrix

本文主要是介绍XGB-14:DMatrix的文本输入格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简要描述XGBoost的文本输入格式。然而,对于具有支持的语言环境(如Python或R)的用户,建议使用该生态系统中的数据解析器。例如,可以使用sklearn.datasets.load_svmlight_file()

基本输入格式

XGBoost目前支持两种文本格式的数据导入:LIBSVMCSV。本文档的其余部分将描述LIBSVM格式(有关CSV格式的描述,请参见此Wikipedia文章)。请注意,XGBoost不理解文件扩展名,也不尝试猜测文件格式,因为关于LIBSVM或CSV文件扩展名的普遍协议不存在。相反,它使用URI格式来指定精确的输入文件类型。例如,如果提供一个csv文件./data.train.csv作为输入,XGBoost将盲目地使用默认的LIBSVM解析器对其进行解析并生成解析器错误。相反,用户需要提供一个形如train.csv?format=csvtrain.csv?format=libsvm的URI。对于外部内存输入,URI的形式应该类似于train.csv?format=csv#dtrain.cache

对于训练或预测,XGBoost接受以下格式的实例文件train.txt

1 101:1.2 102:0.03
0 1:2.1 10001:300 10002:400
0 0:1.3 1:0.3
1 0:0.01 1:0.3
0 0:0.2 1:0.3

每一行表示一个单独的实例,在第一行中,‘1’是实例标签,‘101’和‘102’是特征索引,‘1.2’和‘0.03’是特征值。在二分类情况下,‘1’用于表示正样本,‘0’用于表示负样本。还支持在 [0,1] 范围内的概率值作为标签,以表示该实例为正样本的概率。

附加信息的辅助文件

群组输入格式:

对于排序任务,XGBoost支持群组输入格式。在排序任务中,实例在实际场景中被分类到查询群组中。例如,在学习对网页进行排序的情况下,网页实例按其查询进行分组。XGBoost需要一个文件来指示群组信息。例如,如果实例文件是上面显示的train.txt,则群组文件应命名为train.txt.group,并具有以下格式:

2
3

这意味着数据集包含5个实例,前两个实例属于一组,另外三个实例属于另一组。群组文件中的数字实际上表示实例文件中每组中实例的数量,按照它们在实例文件中的顺序。在配置时,无需指定群组文件的路径。如果实例文件名为xxx,XGBoost将检查同一目录中是否存在名为xxx.group的文件。

实例权重文件

训练数据中的实例可以被赋予权重,以区分它们之间的相对重要性。例如,如果为示例中的train.txt文件提供一个实例权重文件train.txt.weight,如下所示:

1
0.5
0.5
1
0.5

这意味着XGBoost在训练时将更加强调第一个和第四个实例(即正实例)。配置与配置组信息类似。如果实例文件名为xxx,XGBoost将在同一目录中查找名为xxx.weight的文件。如果文件存在,将在训练时提取并使用实例权重。

注意:

如果选择将训练数据保存为二进制缓冲区(使用save_binary()),请注意生成的二进制缓冲区文件将包括实例权重。要更新权重,请使用set_weight()函数。

初始边界文件

XGBoost支持为每个实例提供初始边际预测。例如,如果使用逻辑回归对train.txt文件进行了初始预测,可以创建以下文件train.txt.base_margin

-0.4
1.0
3.4

XGBoost将使用这些值作为初始边际预测并从中提升。关于base_margin的一个重要说明是,它应该是转换之前的边际预测,因此如果使用的是对数损失,需要使用对数变换之前的值。如果正在使用XGBoost预测器,请使用pred_margin=1来输出边际值。

嵌入附加信息到 LIBSVM 文件中

此部分适用于单节点和多节点设置。

查询 ID 列

这对于排名任务非常有用,其中实例被分组成查询组。可以通过在每一行中添加形如 qid:xx 的标记,将每个实例的查询组 ID 嵌入到 LIBSVM 文件中train.txt

1 qid:1 101:1.2 102:0.03
0 qid:1 1:2.1 10001:300 10002:400
0 qid:2 0:1.3 1:0.3
1 qid:2 0:0.01 1:0.3
0 qid:3 0:0.2 1:0.3
1 qid:3 3:-0.1 10:-0.3
0 qid:3 6:0.2 10:0.15

注意以下限制:

  • 不允许仅为某些实例指定查询 ID,而对其他实例不指定。要么每一行都分配查询 ID,要么完全不分配。
  • 行必须按查询 ID 升序排序。例如,不能使一行的查询 ID 比以下任何一行都大。

实例权重

可以通过在 LIBSVM 文件中将每个实例标签与相应的权重一起附加来指定实例权重[label]:[weight],如下例所示train.txt

1:1.0 101:1.2 102:0.03
0:0.5 1:2.1 10001:300 10002:400
0:0.5 0:1.3 1:0.3
1:1.0 0:0.01 1:0.3
0:0.5 0:0.2 1:0.3

其中负实例的权重是正实例权重的一半。

这篇关于XGB-14:DMatrix的文本输入格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759365

相关文章

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

当你输入一个网址后都发生什么

原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/  作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数: