当通过 xgb.ExtMemDMatrix() 或 xgb.QuantileDMatrix.from_iterator() 从外部内存构建 DMatrix 时,此函数是一个辅助函数,用于以数据迭代器的方式分批提供数据。
此函数只能在回调函数内部调用(该回调函数作为参数传递给 xgb.DataIter() 函数以构建数据迭代器),用于通过外部内存构建 DMatrix — 否则,应调用 xgb.DMatrix() 或 xgb.QuantileDMatrix()。
直接调用此函数所产生的对象不像 xgb.DMatrix — 即不能用于训练模型,也不能用于获取预测 — 唯一可能的用途是向迭代器提供数据,然后从该迭代器构建 DMatrix。
有关更多信息和示例用法,请参见 xgb.ExtMemDMatrix() 的文档。
用法
xgb.DataBatch(
  data,
  label = NULL,
  weight = NULL,
  base_margin = NULL,
  feature_names = colnames(data),
  feature_types = NULL,
  group = NULL,
  qid = NULL,
  label_lower_bound = NULL,
  label_upper_bound = NULL,
  feature_weights = NULL
)参数
- 数据
- 属于此批次的数据批次。 - 请注意,并非 - xgb.DMatrix()支持的所有输入类型都可以在此处传递。支持的类型有:- matrix,类型为- numeric、- integer和- logical。请注意,对于- integer和- logical类型,缺失值可能不会自动识别为缺失值 — 有关详细信息,请参见- xgb.ExtMemDMatrix()中- missing参数的文档。
- data.frame,支持与 'xgb.DMatrix' 相同的类型,并应用相同的转换。有关详细信息,请参见- xgb.DMatrix()中- data参数的文档。
- CSR 矩阵,作为 "Matrix" 包中的 - dgRMatrix类。
 
- label
- 训练数据的标签。对于分类问题,应将其编码为从零开始的整数。 
- weight
- 每个实例的权重。 - 请注意,对于排序任务,权重是按组分配的。在排序任务中,每个组(而不是每个数据点)分配一个权重。这是因为我们只关心每个组内数据点的相对排序,因此为单个数据点分配权重没有意义。 
- 基本边距
- 从现有模型进行提升所使用的基本边距。 - 在多输出模型的情况下,还可以传递多维的 - base_margin。
- 特征名称
- 设置特征名称。覆盖数据框和矩阵中的列名。 - 注意:调用 - predict时不会按名称引用列,因此那里的列顺序必须与 DMatrix 构建中的顺序相同,无论列名如何。
- feature_types
- 设置特征类型。 - 如果 - data是- data.frame且未提供- feature_types,则特征类型将自动从列类型中推断出来。- 否则,可以传递一个字符向量,其长度与 - data中的列数相同,可能的值如下:- "c",表示分类列。 
- "q",表示数值列。 
- "int",表示整数列。 
- "i",表示逻辑(布尔)列。 
 - 请注意,虽然分类类型在模型拟合目的方面与其他类型不同,但其他类型不影响生成的模型,但在特征重要性等其他功能中会产生影响。 - 重要:分类特征,如果通过 - feature_types手动指定,必须编码为从零开始的整数,并且在将数据传递给- predict()时需要应用相同的编码。即使传递- factor类型,编码也不会保存,因此请确保传递给- predict的- factor列具有相同的- levels。
- group
- 所有排序组的组大小。 
- qid
- 数据样本的查询 ID,用于排序。 
- label_lower_bound
- 生存训练的下限。 
- label_upper_bound
- 生存训练的上限。 
- 特征权重
- 设置用于列采样的特征权重。