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