xgboost
公共成员函数 | 公共静态成员函数 | 受保护成员函数 | 所有成员列表
xgboost::DMatrix 类参考抽象的

XGBoost 用于存储所有外部数据的内部数据结构。 更多...

#include <data.h>

xgboost::DMatrix 的协作图
Collaboration graph

公共成员函数

 DMatrix ()=default
 默认构造函数 更多...
 
virtual MetaInfoInfo ()=0
 数据集的元信息 更多...
 
virtual void SetInfo (const char *key, std::string const &interface_str)
 
virtual const MetaInfoInfo () const =0
 数据集的元信息 更多...
 
XGBAPIThreadLocalEntry & GetThreadLocal () const
 获取线程本地内存,用于从 DMatrix 返回数据。 更多...
 
virtual Context const * Ctx () const =0
 获取此 DMatrix 的上下文对象。上下文是在构造 DMatrix 时使用用户指定的 nthread 参数创建的。 更多...
 
template<typename T >
BatchSet< T > GetBatches ()
 获取批次。使用基于范围的 for 循环遍历 BatchSet 来访问单个批次。 更多...
 
template<typename T >
BatchSet< T > GetBatches (Context const *ctx)
 
template<typename T >
BatchSet< T > GetBatches (Context const *ctx, const BatchParam &param)
 
template<typename T >
bool PageExists () const
 
bool SingleColBlock () const
 
virtual std::int32_t NumBatches () const
 
virtual ~DMatrix ()
 
bool IsDense () const
 矩阵是否是稠密的。 更多...
 
virtual DMatrixSlice (common::Span< int32_t const > ridxs)=0
 
virtual DMatrixSliceCol (int num_slices, int slice_id)=0
 按列切分 DMatrix更多...
 
template<>
BatchSet< SparsePageGetBatches ()
 
template<>
bool PageExists () const
 
template<>
bool PageExists () const
 
template<>
bool PageExists () const
 
template<>
BatchSet< SparsePageGetBatches (Context const *)
 
template<>
BatchSet< EllpackPage > GetBatches (Context const *ctx, BatchParam const &param)
 

公共静态成员函数

static DMatrixLoad (const std::string &uri, bool silent=true, DataSplitMode data_split_mode=DataSplitMode::kRow)
 从 URI 加载 DMatrix更多...
 
template<typename AdapterT >
static DMatrixCreate (AdapterT *adapter, float missing, int nthread, const std::string &cache_prefix="", DataSplitMode data_split_mode=DataSplitMode::kRow)
 从外部数据适配器创建新的 DMatrix更多...
 
template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrixCreate (DataIterHandle iter, DMatrixHandle proxy, std::shared_ptr< DMatrix > ref, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, float missing, std::int32_t nthread, bst_bin_t max_bin, std::int64_t max_quantile_blocks)
 创建一个新的基于分位数的 DMatrix,用于基于直方图的算法。 更多...
 
template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrixCreate (DataIterHandle iter, DMatrixHandle proxy, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, ExtMemConfig const &config)
 使用回调函数创建外部内存 DMatrix更多...
 
template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrixCreate (DataIterHandle iter, DMatrixHandle proxy, std::shared_ptr< DMatrix > ref, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, bst_bin_t max_bin, std::int64_t max_quantile_blocks, ExtMemConfig const &config)
 使用回调函数创建外部内存分位数 DMatrix更多...
 

受保护成员函数

virtual BatchSet< SparsePageGetRowBatches ()=0
 
virtual BatchSet< CSCPageGetColumnBatches (Context const *ctx)=0
 
virtual BatchSet< SortedCSCPageGetSortedColumnBatches (Context const *ctx)=0
 
virtual BatchSet< EllpackPage > GetEllpackBatches (Context const *ctx, BatchParam const &param)=0
 
virtual BatchSet< GHistIndexMatrix > GetGradientIndex (Context const *ctx, BatchParam const &param)=0
 
virtual BatchSet< ExtSparsePageGetExtBatches (Context const *ctx, BatchParam const &param)=0
 
virtual bool EllpackExists () const =0
 
virtual bool GHistIndexExists () const =0
 
virtual bool SparsePageExists () const =0
 

详细描述

XGBoost 用于存储所有外部数据的内部数据结构。

DMatrix 类有多种变体,可以通过 Create() 方法访问。 DMatrix 本身存储预测器 X,而包括标签和样本权重在内的其他数据则存储在 MetaInfo 类中。

构造函数和析构函数文档

◆ DMatrix()

xgboost::DMatrix::DMatrix ( )
default

默认构造函数

◆ ~DMatrix()

virtual xgboost::DMatrix::~DMatrix ( )
virtual

成员函数文档

◆ Create() [1/4]

template<typename AdapterT >
static DMatrix* xgboost::DMatrix::Create ( AdapterT *  adapter,
float  missing,
int  nthread,
const std::string &  cache_prefix = "",
DataSplitMode  data_split_mode = DataSplitMode::kRow 
)
static

从外部数据适配器创建新的 DMatrix

模板参数
AdapterT适配器的类型。
参数
[输入, 输出]adapter外部数据的视图。
missing视为缺失值的值。
nthread用于构建的线程数。
cache_prefix(可选) 外部内存的缓存前缀。
data_split_mode(可选) 数据分割模式。
返回值
创建的 DMatrix

◆ Create() [2/4]

template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrix* xgboost::DMatrix::Create ( DataIterHandle  iter,
DMatrixHandle  proxy,
DataIterResetCallback reset,
XGDMatrixCallbackNext next,
ExtMemConfig const &  config 
)
static

使用回调函数创建外部内存 DMatrix

模板参数
DataIterHandle外部迭代器类型,在 C API 中定义。
DMatrixHandleDMatrix 句柄,在 C API 中定义。
DataIterResetCallback重置的回调函数,原型在 C API 中定义。
XGDMatrixCallbackNextnext 的回调函数,原型在 C API 中定义。
参数
iter外部数据迭代器
proxyProxyDMatrix 的句柄
reset重置的回调函数
nextnext 的回调函数
config缓存的配置。
返回值
创建的外部内存 DMatrix

◆ Create() [3/4]

template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrix* xgboost::DMatrix::Create ( DataIterHandle  iter,
DMatrixHandle  proxy,
std::shared_ptr< DMatrix ref,
DataIterResetCallback reset,
XGDMatrixCallbackNext next,
bst_bin_t  max_bin,
std::int64_t  max_quantile_blocks,
ExtMemConfig const &  config 
)
static

使用回调函数创建外部内存分位数 DMatrix

Parameters are a combination of the external memory DMatrix and the quantile DMatrix.
返回值
创建的外部内存分位数 DMatrix

◆ Create() [4/4]

template<typename DataIterHandle , typename DMatrixHandle , typename DataIterResetCallback , typename XGDMatrixCallbackNext >
static DMatrix* xgboost::DMatrix::Create ( DataIterHandle  iter,
DMatrixHandle  proxy,
std::shared_ptr< DMatrix ref,
DataIterResetCallback reset,
XGDMatrixCallbackNext next,
float  missing,
std::int32_t  nthread,
bst_bin_t  max_bin,
std::int64_t  max_quantile_blocks 
)
static

创建一个新的基于分位数的 DMatrix,用于基于直方图的算法。

模板参数
DataIterHandle外部迭代器类型,在 C API 中定义。
DMatrixHandleDMatrix 句柄,在 C API 中定义。
DataIterResetCallback重置的回调函数,原型在 C API 中定义。
XGDMatrixCallbackNextnext 的回调函数,原型在 C API 中定义。
参数
iter外部数据迭代器
proxyProxyDMatrix 的句柄
ref参考分位数 DMatrix
reset重置的回调函数
nextnext 的回调函数
missing应视为缺失的
nthread用于初始化的线程数。
max_bin最大分箱数。
返回值
创建的基于分位数的 DMatrix

◆ Ctx()

virtual Context const* xgboost::DMatrix::Ctx ( ) const
纯虚函数

获取此 DMatrix 的上下文对象。上下文是在构造 DMatrix 时使用用户指定的 nthread 参数创建的。

◆ EllpackExists()

virtual bool xgboost::DMatrix::EllpackExists ( ) const
受保护的纯虚函数

◆ GetBatches() [1/6]

template<typename T >
BatchSet<T> xgboost::DMatrix::GetBatches ( )

获取批次。使用基于范围的 for 循环遍历 BatchSet 来访问单个批次。

◆ GetBatches() [2/6]

template<>
BatchSet<SparsePage> xgboost::DMatrix::GetBatches ( )
内联

◆ GetBatches() [3/6]

template<>
BatchSet< SortedCSCPage > xgboost::DMatrix::GetBatches ( Context const *  ctx)
内联

◆ GetBatches() [4/6]

template<typename T >
BatchSet<T> xgboost::DMatrix::GetBatches ( Context const *  ctx)

◆ GetBatches() [5/6]

template<>
BatchSet< ExtSparsePage > xgboost::DMatrix::GetBatches ( Context const *  ctx,
BatchParam const &  param 
)
内联

◆ GetBatches() [6/6]

template<typename T >
BatchSet<T> xgboost::DMatrix::GetBatches ( Context const *  ctx,
const BatchParam param 
)

◆ GetColumnBatches()

virtual BatchSet<CSCPage> xgboost::DMatrix::GetColumnBatches ( Context const *  ctx)
受保护的纯虚函数

◆ GetEllpackBatches()

virtual BatchSet<EllpackPage> xgboost::DMatrix::GetEllpackBatches ( Context const *  ctx,
BatchParam const &  param 
)
受保护的纯虚函数

◆ GetExtBatches()

virtual BatchSet<ExtSparsePage> xgboost::DMatrix::GetExtBatches ( Context const *  ctx,
BatchParam const &  param 
)
受保护的纯虚函数

◆ GetGradientIndex()

virtual BatchSet<GHistIndexMatrix> xgboost::DMatrix::GetGradientIndex ( Context const *  ctx,
BatchParam const &  param 
)
受保护的纯虚函数

◆ GetRowBatches()

virtual BatchSet<SparsePage> xgboost::DMatrix::GetRowBatches ( )
受保护的纯虚函数

◆ GetSortedColumnBatches()

virtual BatchSet<SortedCSCPage> xgboost::DMatrix::GetSortedColumnBatches ( Context const *  ctx)
受保护的纯虚函数

◆ GetThreadLocal()

XGBAPIThreadLocalEntry& xgboost::DMatrix::GetThreadLocal ( ) const

获取线程本地内存,用于从 DMatrix 返回数据。

◆ GHistIndexExists()

virtual bool xgboost::DMatrix::GHistIndexExists ( ) const
受保护的纯虚函数

◆ Info() [1/2]

virtual const MetaInfo& xgboost::DMatrix::Info ( ) const
纯虚函数

数据集的元信息

◆ Info() [2/2]

virtual MetaInfo& xgboost::DMatrix::Info ( )
纯虚函数

数据集的元信息

◆ IsDense()

bool xgboost::DMatrix::IsDense ( ) const
内联

矩阵是否是稠密的。

◆ Load()

static DMatrix* xgboost::DMatrix::Load ( const std::string &  uri,
bool  silent = true,
DataSplitMode  data_split_mode = DataSplitMode::kRow 
)
static

从 URI 加载 DMatrix

参数
uri输入 URI。
silent加载时是否打印信息。
data_split_mode指示数据事先是如何分割的。
返回值
创建的 DMatrix

◆ NumBatches()

virtual std::int32_t xgboost::DMatrix::NumBatches ( ) const
内联虚函数

◆ PageExists() [1/4]

template<typename T >
bool xgboost::DMatrix::PageExists ( ) const

◆ PageExists() [2/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
内联

◆ PageExists() [3/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
内联

◆ PageExists() [4/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
内联

◆ SetInfo()

virtual void xgboost::DMatrix::SetInfo ( const char *  key,
std::string const &  interface_str 
)
内联虚函数

◆ SingleColBlock()

bool xgboost::DMatrix::SingleColBlock ( ) const
内联
返回值
是否包含单个批次。

此命名是历史遗留的。

◆ Slice()

virtual DMatrix* xgboost::DMatrix::Slice ( common::Span< int32_t const >  ridxs)
纯虚函数

◆ SliceCol()

virtual DMatrix* xgboost::DMatrix::SliceCol ( int  num_slices,
int  slice_id 
)
纯虚函数

按列切分 DMatrix

参数
num_slices切分总数
slice_id当前切片的索引
返回值
包含列切片的 DMatrix

◆ SparsePageExists()

virtual bool xgboost::DMatrix::SparsePageExists ( ) const
受保护的纯虚函数

本类的文档生成自以下文件