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

目标函数的接口 更多...

#include <objective.h>

xgboost::ObjFunction 的继承图
Inheritance graph
xgboost::ObjFunction 的协作图
Collaboration graph

公有成员函数

 ~ObjFunction () override=default
 虚析构函数 更多...
 
virtual void Configure (Args const &args)=0
 使用指定的参数配置目标函数。 更多...
 
virtual void GetGradient (HostDeviceVector< float > const &preds, MetaInfo const &info, std::int32_t iter, linalg::Matrix< GradientPair > *out_gpair)=0
 根据现有信息,获取每个预测值的梯度。 更多...
 
virtual const char * DefaultEvalMetric () const =0
 
virtual Json DefaultMetricConfig () const
 返回默认度量的配置。 更多...
 
virtual void PredTransform (HostDeviceVector< float > *) const
 对预测值应用逆链接(激活)函数。 更多...
 
virtual void EvalTransform (HostDeviceVector< float > *io_preds)
 对预测值应用逆链接(激活)函数。 更多...
 
virtual float ProbToMargin (float base_score) const
 对截距应用链接函数。 更多...
 
virtual void InitEstimation (MetaInfo const &info, linalg::Tensor< float, 1 > *base_score) const
 获取预测的初始估计值。 更多...
 
virtual struct ObjInfo Task () const =0
 返回此目标的任务。 更多...
 
virtual bst_target_t Targets (MetaInfo const &info) const
 返回输入矩阵的目标数量。目前 XGBoost 仅支持多目标回归。 更多...
 
virtual void UpdateTreeLeaf (HostDeviceVector< bst_node_t > const &, MetaInfo const &, float, HostDeviceVector< float > const &, std::int32_t, RegTree *) const
 构建树后更新叶子值。对于 Hessian 为 0 的目标函数需要此操作。 更多...
 
- 继承自 xgboost::Configurable 的公有成员函数
virtual ~Configurable ()=default
 
virtual void LoadConfig (Json const &in)=0
 从 JSON 对象加载配置。 更多...
 
virtual void SaveConfig (Json *out) const =0
 将配置保存到 JSON 对象。 更多...
 

公有静态成员函数

static constexpr float DefaultBaseScore ()
 
static ObjFunctionCreate (const std::string &name, Context const *ctx)
 根据名称创建目标函数。 更多...
 

保护属性

Context const * ctx_
 

详细描述

目标函数的接口

构造函数和析构函数文档

◆ ~ObjFunction()

xgboost::ObjFunction::~ObjFunction ( )
overridedefault

虚析构函数

成员函数文档

◆ Configure()

virtual void xgboost::ObjFunction::Configure ( Args const &  args)
纯虚函数

使用指定的参数配置目标函数。

参数
args目标函数的参数。

◆ Create()

static ObjFunction* xgboost::ObjFunction::Create ( const std::string &  name,
Context const *  ctx 
)
静态

根据名称创建目标函数。

参数
ctx运行时参数的指针。
name目标的名称。

◆ DefaultBaseScore()

static constexpr float xgboost::ObjFunction::DefaultBaseScore ( )
内联静态constexpr

◆ DefaultEvalMetric()

virtual const char* xgboost::ObjFunction::DefaultEvalMetric ( ) const
纯虚函数
返回
目标的默认评估指标

◆ DefaultMetricConfig()

virtual Json xgboost::ObjFunction::DefaultMetricConfig ( ) const
内联虚函数

返回默认度量的配置。

◆ EvalTransform()

virtual void xgboost::ObjFunction::EvalTransform ( HostDeviceVector< float > *  io_preds)
内联虚函数

对预测值应用逆链接(激活)函数。

仅在调用 Eval 时调用,通常重定向到 PredTransform

参数
[输入, 输出]io_preds预测值,也保存到此向量。

◆ GetGradient()

virtual void xgboost::ObjFunction::GetGradient ( HostDeviceVector< float > const &  preds,
MetaInfo const &  info,
std::int32_t  iter,
linalg::Matrix< GradientPair > *  out_gpair 
)
纯虚函数

根据现有信息,获取每个预测值的梯度。

参数
preds当前轮次的预测
info关于标签、权重、排名中的组的信息
迭代当前迭代次数。
out_gpair获取梯度的输出,保存梯度和二阶梯度到

◆ 初始化估算()

virtual void xgboost::ObjFunction::InitEstimation ( MetaInfo const &  info,
linalg::Tensor< float, 1 > *  base_score 
) const
虚函数

获取预测的初始估计值。

base_score 中的输出表示应用逆链接函数后的预测。

参数
infoMetaInfo,包含标签。
base_score输出估计值。

◆ PredTransform()

virtual void xgboost::ObjFunction::PredTransform ( HostDeviceVector< float > *  ) const
内联虚函数

对预测值应用逆链接(激活)函数。

仅在调用 Prediction 时调用

参数
[输入, 输出]io_preds预测值,也保存到此向量。

◆ ProbToMargin()

virtual float xgboost::ObjFunction::ProbToMargin ( float  base_score) const
内联虚函数

对截距应用链接函数。

用于将用户设置的 base_score 转换回梯度提升使用的 margin

返回
转换后的值

◆ Targets()

virtual bst_target_t xgboost::ObjFunction::Targets ( MetaInfo const &  info) const
内联虚函数

返回输入矩阵的目标数量。目前 XGBoost 仅支持多目标回归。

◆ Task()

virtual struct ObjInfo xgboost::ObjFunction::Task ( ) const
纯虚函数

返回此目标的任务。

◆ UpdateTreeLeaf()

virtual void xgboost::ObjFunction::UpdateTreeLeaf ( HostDeviceVector< bst_node_t > const &  ,
MetaInfo const &  ,
float  ,
HostDeviceVector< float > const &  ,
std::int32_t  ,
RegTree  
) const
内联虚函数

构建树后更新叶子值。对于 Hessian 为 0 的目标函数需要此操作。

请注意,对于分布式训练,叶子更新没有明确定义,因为 XGBoost 只计算 worker 之间分位数(quantile)的平均值。当某些叶子在本地 worker 中没有分配样本时,这会中断。

参数
position每行的叶子索引。
info提供标签和权重的 MetaInfo
learning_rate当前迭代的学习率。
prediction转换后的 模型 预测。
group_idx此树的组索引,非多目标或多分类时为 0。
p_tree需要更新的树。

成员数据文档

◆ ctx_

Context const* xgboost::ObjFunction::ctx_
保护

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