跳到内容

用于创建自定义数据迭代器以从外部内存构建 DMatrix 的接口。

此函数负责生成一个 R 对象结构,其中包含回调函数和与它们共享的环境。

此函数的输出结构随后将传递给 xgb.ExtMemDMatrix(),后者将通过执行回调函数来使用数据并从中创建 DMatrix。

有关更多信息和使用示例,请参阅 xgb.ExtMemDMatrix() 的文档。

用法

xgb.DataIter(env = new.env(), f_next, f_reset)

参数

env

一个 R 环境,用于传递给此处提供的回调函数,可用于跟踪变量以确定如何处理批次。

例如,可能希望在此环境中跟踪迭代次数,以便知道接下来要传递数据哪一部分。

f_next

function(env) 负责

  • 访问或检索迭代器中的下一个数据批次。

  • 通过对其调用函数 xgb.DataBatch() 并返回结果来提供此数据。

  • 跟踪其在迭代器批次中的位置或下一步将去向何处,这可以通过修改此处传递的 env 变量中的变量来完成。

  • 通过在数据流结束(迭代器中的所有批次都已使用)时返回 NULL,或者在有更多批次待使用时返回调用 xgb.DataBatch() 的结果,来指示是否有更多批次要使用。

f_reset

function(env) 负责重置数据迭代器(即,将其返回到第一个批次,在批次序列使用之前和之后调用)。

请注意,在重置迭代器后,将再次访问批次,因此在后续迭代中必须传递相同的数据(并且按相同顺序)。

一个 xgb.DataIter 对象,包含此处提供的相同输入,然后可以将其传递给 xgb.ExtMemDMatrix()