跳到内容

用于创建自定义数据迭代器以从外部存储构建 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()