分位数 DMatrix 和外部内存 DMatrix 可以通过数据批次创建。更多...
|  | 
| int | XGDMatrixCreateFromDataIter (DataIterHandle data_handle, XGBCallbackDataIterNext *callback, const char *cache_info, float missing, DMatrixHandle *out) | 
|  | 从数据迭代器创建 DMatrix。更多... 
 | 
|  | 
| int | XGProxyDMatrixCreate (DMatrixHandle *out) | 
|  | 创建一个 DMatrix 代理来设置数据,可以通过 XGDMatrixFree 释放。更多... 
 | 
|  | 
| int | XGDMatrixCreateFromCallback (DataIterHandle iter, DMatrixHandle proxy, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out) | 
|  | 使用数据迭代器创建外部内存 DMatrix。更多... 
 | 
|  | 
| int | XGQuantileDMatrixCreateFromCallback (DataIterHandle iter, DMatrixHandle proxy, DataIterHandle ref, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out) | 
|  | 使用数据迭代器创建分位数 DMatrix。更多... 
 | 
|  | 
| int | XGExtMemQuantileDMatrixCreateFromCallback (DataIterHandle iter, DMatrixHandle proxy, DataIterHandle ref, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out) | 
|  | 创建由外部内存支持的分位数 DMatrix。更多... 
 | 
|  | 
| int | XGProxyDMatrixSetDataCudaArrayInterface (DMatrixHandle handle, const char *data) | 
|  | 在 DMatrix 代理上设置数据。更多... 
 | 
|  | 
| int | XGProxyDMatrixSetDataColumnar (DMatrixHandle handle, char const *data) | 
|  | 在 DMatrix 代理上设置列式(表格)数据。更多... 
 | 
|  | 
| int | XGProxyDMatrixSetDataCudaColumnar (DMatrixHandle handle, const char *data) | 
|  | 在 DMatrix 代理上设置基于 CUDA 的列式(表格)数据。更多... 
 | 
|  | 
| int | XGProxyDMatrixSetDataDense (DMatrixHandle handle, char const *data) | 
|  | 在 DMatrix 代理上设置数据。更多... 
 | 
|  | 
| int | XGProxyDMatrixSetDataCSR (DMatrixHandle handle, char const *indptr, char const *indices, char const *data, bst_ulong ncol) | 
|  | 在 DMatrix 代理上设置数据。更多... 
 | 
|  | 
分位数 DMatrix 和外部内存 DMatrix 可以从批量数据创建。
DMatrix 有两组数据回调。第一组目前专门由 JVM 包使用。它使用 ` XGBoostBatchCSR ` 接受 CSR 格式输入的批次,并将它们连接成一个最终的大型 CSR。相关函数是:
另一组由外部数据迭代器使用。它接受外部数据迭代器作为回调。有两种不同的场景,用户可能希望传入回调而不是原始数据。首先是 hist 和基于 GPU 的 hist 树方法使用的分位数 DMatrix。在这种情况下,数据首先通过分位数素描压缩,然后合并。这对于分布式设置特别有用,因为它消除了两次数据复制。第一次是由外部库进行 `concat`,将数据转换为一个 blob 以进行正常 DMatrix 初始化,另一次是由 DMatrix 的内部 CSR 复制。
第二个用例是外部内存支持,用户可以将自定义数据迭代器传递给 XGBoost,以批处理方式加载数据。对于这两种情况,迭代器仅在 DMatrix 构造期间使用,并在构造完成后可以安全释放。在相应的 DMatrix 工厂函数中,每个用例都有简短的说明。
相关函数是
 工厂函数
 调用者可用于向 XGBoost 传递数据的代理
◆ DataHolderHandle
◆ DataIterHandle
◆ DataIterResetCallback
◆ XGBCallbackDataIterNext
数据读取回调函数。迭代器将能够提供数据中的批次子集。
如果存在数据,该函数将调用 set_function 来设置数据。
- 参数
- 
  
    | data_handle | 回调的句柄。 |  | set_function | 迭代器返回的批次 |  | set_function_handle | 要传递给 set 函数的句柄。 |  
 
- 返回
- 如果已到达末尾且未返回批次,则为 0。
 
 
◆ XGBCallbackSetData
设置数据到句柄的回调函数。
- 参数
- 
  
    | handle | 回调的句柄。 |  | batch | 要设置的数据内容。 |  
 
 
 
◆ XGDMatrixCallbackNext
获取下一批数据的回调函数原型。
- 参数
- 
  
  
- 返回
- 成功时为 0,失败时为 -1。
 
 
◆ XGDMatrixCreateFromCallback()
使用数据迭代器创建外部内存 DMatrix。
关于如何使用第二组回调来支持外部内存数据的简短说明
- 参数
- 
  
    |  | iter | 外部数据迭代器的句柄。 |  |  | proxy | 由 XGProxyDMatrixCreate 创建的 DMatrix 代理句柄。 |  |  | reset | 重置迭代器状态的回调函数。 |  |  | next | 产生下一批数据的回调函数。 |  |  | config | 用于 DMatrix 构造的 JSON 编码参数。接受的字段有: 
missing:表示缺失值的值cache_prefix:缓存文件的路径,调用者必须初始化此路径中的所有目录。nthread (可选): 用于初始化 DMatrix 的线程数。 |  | [输出] | out | 创建的外部内存 DMatrix |  
 
- 返回
- 成功返回 0,失败返回 -1
- 示例
- external_memory.c.
 
 
◆ XGDMatrixCreateFromDataIter()
从数据迭代器创建 DMatrix。
- 参数
- 
  
    | data_handle | 数据句柄。 |  | callback | 获取数据的回调。 |  | cache_info | 关于缓存文件的附加信息,可以为 null。 |  | missing | 表示缺失值的值。 |  | out | 创建的 DMatrix |  
 
- 返回
- 成功时为 0,失败时为 -1。
 
 
◆ XGExtMemQuantileDMatrixCreateFromCallback()
创建由外部内存支持的Quantile DMatrix。
- 自
- 3.0.0
- 注意
- 这是实验性的,可能会有变化。
- 参数
- 
  
    | iter | 外部数据迭代器的句柄。 |  | proxy | 由 XGProxyDMatrixCreate 创建的 DMatrix 代理句柄。 |  | ref | 提供分位数信息的参考 DMatrix。 |  | reset | 重置迭代器状态的回调函数。 |  | next | 产生下一批数据的回调函数。 |  | config | 用于 DMatrix 构造的 JSON 编码参数。接受的字段有: 
missing:表示缺失值的值cache_prefix:缓存文件的路径,调用者必须初始化此路径中的所有目录。nthread (可选): 用于初始化 DMatrix 的线程数。max_bin (可选):用于构建直方图的最大分箱数。必须与相应的助推器训练参数一致。on_host (可选):数据是否应放置在主机内存中。由 GPU 输入使用。min_cache_page_bytes (可选):每个内部 GPU 页面的最小字节数。设置为 0 以禁用页面连接。如果未提供参数或设置为 None,则自动配置。max_quantile_blocks (可选):对于基于 GPU 的输入,XGBoost 使用多个不断增长的子流处理传入的批次。此参数设置在 XGBoost 切断子流并创建新子流之前的最大批次数。这有助于限制内存使用。默认情况下,XGBoost 以指数方式增长新子流,直到批次耗尽。仅用于训练数据集,默认值为 None(无限制)。 |  
 
- cache_host_ratio (可选):对于基于 GPU 的输入,XGBoost 可以将缓存分成主机和设备部分,以减少数据传输开销。此参数指定主机缓存相对于整个缓存的大小:`host / (host + device)`。- 参数
- 
  
  
 - 返回
- 成功返回 0,失败返回 -1
 
 
 
◆ XGProxyDMatrixCreate()
◆ XGProxyDMatrixSetDataColumnar()
      
        
          | int XGProxyDMatrixSetDataColumnar | ( | DMatrixHandle | handle, | 
        
          |  |  | char const * | 数据 | 
        
          |  | ) |  |  | 
      
 
在DMatrix代理上设置列状(表状)数据。
- 参数
- 
  
  
- 返回
- 成功返回 0,失败返回 -1
 
 
◆ XGProxyDMatrixSetDataCSR()
      
        
          | int XGProxyDMatrixSetDataCSR | ( | DMatrixHandle | handle, | 
        
          |  |  | char const * | indptr, | 
        
          |  |  | char const * | indices, | 
        
          |  |  | char const * | 数据, | 
        
          |  |  | bst_ulong | ncol | 
        
          |  | ) |  |  | 
      
 
在DMatrix代理上设置数据。
- 参数
- 
  
    | handle | 由 XGProxyDMatrixCreate 创建的 DMatrix 代理 |  | indptr | JSON 编码的 array_interface 到 CSR 中的行指针。 |  | indices | JSON编码的CSR中列索引的array_interface。 |  | 数据 | JSON 编码的 array_interface 到 CSR 中的值。 |  | ncol | 输入 CSR 矩阵的列数。 |  
 
- 返回
- 成功返回 0,失败返回 -1
 
 
◆ XGProxyDMatrixSetDataCudaArrayInterface()
      
        
          | int XGProxyDMatrixSetDataCudaArrayInterface | ( | DMatrixHandle | handle, | 
        
          |  |  | const char * | 数据 | 
        
          |  | ) |  |  | 
      
 
在DMatrix代理上设置数据。
- 参数
- 
  
  
- 返回
- 成功返回 0,失败返回 -1
 
 
◆ XGProxyDMatrixSetDataCudaColumnar()
      
        
          | int XGProxyDMatrixSetDataCudaColumnar | ( | DMatrixHandle | handle, | 
        
          |  |  | const char * | 数据 | 
        
          |  | ) |  |  | 
      
 
在 DMatrix 代理上设置基于 CUDA 的列式(表格)数据。
- 参数
- 
  
  
- 返回
- 成功返回 0,失败返回 -1
 
 
◆ XGProxyDMatrixSetDataDense()
      
        
          | int XGProxyDMatrixSetDataDense | ( | DMatrixHandle | handle, | 
        
          |  |  | char const * | 数据 | 
        
          |  | ) |  |  | 
      
 
 
◆ XGQuantileDMatrixCreateFromCallback()
使用数据迭代器创建Quantile DMatrix。
关于如何使用第二组回调用于 (GPU) Hist 树方法的简短说明
请参阅 test_iterative_dmatrix.cu 或 Python 接口以获取示例。
- 参数
- 
  
    | iter | 外部数据迭代器的句柄。 |  | proxy | 由 XGProxyDMatrixCreate 创建的 DMatrix 代理句柄。 |  | ref | 提供分位数信息的参考 DMatrix。 |  | reset | 重置迭代器状态的回调函数。 |  | next | 产生下一批数据的回调函数。 |  | config | 用于 DMatrix 构造的 JSON 编码参数。接受的字段有: 
missing:表示缺失值的值nthread (可选): 用于初始化 DMatrix 的线程数。max_bin (可选):用于构建直方图的最大分箱数。必须与相应的助推器训练参数一致。max_quantile_blocks (可选):对于基于 GPU 的输入,XGBoost 使用多个不断增长的子流处理传入的批次。此参数设置在 XGBoost 切断子流并创建新子流之前的最大批次数。这有助于限制内存使用。默认情况下,XGBoost 以指数方式增长新子流,直到批次耗尽。仅用于训练数据集,默认值为 None(无限制)。 |  | out | 创建的分位数 DMatrix。 |  
 
- 返回
- 成功返回 0,失败返回 -1