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