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

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

#include <data.h>

xgboost::DMatrix 协作图
Collaboration graph

公共成员函数

 DMatrix ()=default
 默认构造函数更多...
 
virtual MetaInfo信息 ()=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 的上下文对象。该上下文是在使用用户指定的 nthread 参数构造 DMatrix 时创建的。更多...
 
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更多...
 
CatContainer const * Cats () const
 类别字符串表示的访问器。更多...
 
std::shared_ptr< CatContainer const > CatsShared () const
 
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)
 创建新的基于分位数(Quantile)的 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 ( )
默认

默认构造函数

◆ ~DMatrix()

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

成员函数文档

◆ Cats()

CatContainer const* xgboost::DMatrix::Cats ( ) const
inline

类别字符串表示的访问器。

◆ CatsShared()

std::shared_ptr<CatContainer const> xgboost::DMatrix::CatsShared ( ) const
inline

◆ 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适配器类型。
参数
[in,out]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 中定义。
XGDMatrixCallbackNext下一个回调函数,原型在 C API 中定义。
参数
iter外部数据迭代器
proxyProxyDMatrix 的句柄
reset重置回调
next下一个回调
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

创建新的基于分位数(Quantile)的 DMatrix,用于基于直方图的算法。

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

◆ Ctx()

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

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

◆ EllpackExists()

virtual bool xgboost::DMatrix::EllpackExists ( ) const
protected纯虚函数

◆ GetBatches() [1/6]

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

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

◆ GetBatches() [2/6]

template<>
BatchSet<SparsePage> xgboost::DMatrix::GetBatches ( )
inline

◆ GetBatches() [3/6]

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

◆ 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 
)
inline

◆ 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)
protected纯虚函数

◆ GetEllpackBatches()

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

◆ GetExtBatches()

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

◆ GetGradientIndex()

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

◆ GetRowBatches()

virtual BatchSet<SparsePage> xgboost::DMatrix::GetRowBatches ( )
protected纯虚函数

◆ GetSortedColumnBatches()

virtual BatchSet<SortedCSCPage> xgboost::DMatrix::GetSortedColumnBatches ( Context const *  ctx)
protected纯虚函数

◆ GetThreadLocal()

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

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

◆ GHistIndexExists()

virtual bool xgboost::DMatrix::GHistIndexExists ( ) const
protected纯虚函数

◆ Info() [1/2]

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

数据集的元信息

◆ Info() [2/2]

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

数据集的元信息

◆ IsDense()

bool xgboost::DMatrix::IsDense ( ) const
inline

矩阵是否是稠密的。

◆ 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
inlinevirtual

◆ PageExists() [1/4]

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

◆ PageExists() [2/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
inline

◆ PageExists() [3/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
inline

◆ PageExists() [4/4]

template<>
bool xgboost::DMatrix::PageExists ( ) const
inline

◆ SetInfo()

virtual void xgboost::DMatrix::SetInfo ( const char *  key,
std::string const &  interface_str 
)
inlinevirtual

◆ SingleColBlock()

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

命名为传统。

◆ 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
protected纯虚函数

此类的文档由以下文件生成