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 void ProbToMargin (linalg::Vector< float > *) const
 对截距应用链接函数。更多...
 
virtual void InitEstimation (MetaInfo const &info, linalg::Vector< float > *base_score) const
 获取预测的初始估计值(截距)。更多...
 
virtual struct ObjInfo Task () const =0
 返回此目标的任务。更多...
 
virtual bst_target_t Targets (MetaInfo const &info) const
 返回输入矩阵的目标数量。目前 XGBoost 仅支持多目标回归。更多...
 
Context const * Ctx () const
 上下文的 Getter。更多...
 
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_ {nullptr}
 

详细描述

目标函数的接口。

构造函数和析构函数文档

◆ ~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 
)
static

根据名称创建一个目标函数。

参数
name目标的名称。
ctx指向上下文的指针。

◆ Ctx()

Context const* xgboost::ObjFunction::Ctx ( ) const
inline

上下文的 Getter。

◆ DefaultBaseScore()

static constexpr float xgboost::ObjFunction::DefaultBaseScore ( )
inlinestaticconstexpr

◆ DefaultEvalMetric()

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

◆ DefaultMetricConfig()

virtual Json xgboost::ObjFunction::DefaultMetricConfig ( ) const
inlinevirtual

返回默认评估指标的配置。

◆ EvalTransform()

virtual void xgboost::ObjFunction::EvalTransform ( HostDeviceVector< float > *  io_preds)
inlinevirtual

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

这只在调用 Eval 时调用,通常它会重定向到 PredTransform

参数
[in,out]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获取梯度的输出,将梯度和二阶梯度保存在

◆ InitEstimation()

virtual void xgboost::ObjFunction::InitEstimation ( MetaInfo const &  info,
linalg::Vector< float > *  base_score 
) const
virtual

获取预测的初始估计值(截距)。

base_score 中的输出表示应用逆链接函数(有效预测而不是原始预测)后的预测。

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

◆ PredTransform()

virtual void xgboost::ObjFunction::PredTransform ( HostDeviceVector< float > *  ) const
inlinevirtual

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

这只在调用 Prediction 时调用

参数
[in,out]io_preds预测值,也保存到此向量中。

◆ ProbToMargin()

virtual void xgboost::ObjFunction::ProbToMargin ( linalg::Vector< float > *  ) const
inlinevirtual

对截距应用链接函数。

对于大多数目标函数(如果存在有效逆函数),这是 PredTransform 的逆函数。它用于将用户设置的 base_score 转换回梯度提升使用的边距。该方法将基于目标的有效输出(如概率)转换回原始模型输出。

参数
[in,out]base_score要转换的截距。

◆ Targets()

virtual bst_target_t xgboost::ObjFunction::Targets ( MetaInfo const &  info) const
inlinevirtual

返回输入矩阵的目标数量。目前 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
inlinevirtual

在树构建后更新叶子值。对于 Hessian 为 0 的目标函数是必需的。

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

参数
位置每行的叶子索引。
infoMetaInfo 提供标签和权重。
学习率当前迭代的学习率。
预测模型转换后的预测。
group_idx此树的组索引,如果不是多目标或多分类,则为 0。
p_tree需要更新的树。

成员数据文档

◆ ctx_

Context const* xgboost::ObjFunction::ctx_ {nullptr}
protected

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