Medial Code Documentation
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes
xgboost::ObjFunction Class Referenceabstract

interface of objective function More...

#include <objective.h>

Inheritance diagram for xgboost::ObjFunction:
xgboost::Configurable xgboost::obj::FitIntercept xgboost::obj::MyLogistic xgboost::obj::RegLossObjOneAPI< Loss > xgboost::obj::LambdaRankObj< LambdaRankMAP, ltr::MAPCache > xgboost::obj::LambdaRankObj< LambdaRankNDCG, ltr::NDCGCache > xgboost::obj::LambdaRankObj< LambdaRankPairwise, ltr::RankingCache > xgboost::obj::LambdaRankObj< Loss, Cache > xgboost::obj::LambdaRankMAP xgboost::obj::LambdaRankNDCG xgboost::obj::LambdaRankPairwise

Public Member Functions

 ~ObjFunction () override=default
 virtual destructor
 
virtual void Configure (const std::vector< std::pair< std::string, std::string > > &args)=0
 Configure the objective with the specified parameters.
 
virtual void GetGradient (const HostDeviceVector< bst_float > &preds, const MetaInfo &info, int iteration, HostDeviceVector< GradientPair > *out_gpair)=0
 Get gradient over each of predictions, given existing information.
 
virtual const char * DefaultEvalMetric () const =0
 
virtual Json DefaultMetricConfig () const
 Return the configuration for the default metric.
 
virtual void PredTransform (HostDeviceVector< bst_float > *) const
 transform prediction values, this is only called when Prediction is called
 
virtual void EvalTransform (HostDeviceVector< bst_float > *io_preds)
 transform prediction values, this is only called when Eval is called, usually it redirect to PredTransform
 
virtual bst_float ProbToMargin (bst_float base_score) const
 transform probability value back to margin this is used to transform user-set base_score back to margin used by gradient boosting
 
virtual void InitEstimation (MetaInfo const &info, linalg::Tensor< float, 1 > *base_score) const
 Make initialize estimation of prediction.
 
virtual struct ObjInfo Task () const =0
 Return task of this objective.
 
virtual bst_target_t Targets (MetaInfo const &info) const
 Return number of targets for input matrix.
 
virtual void UpdateTreeLeaf (HostDeviceVector< bst_node_t > const &, MetaInfo const &, float, HostDeviceVector< float > const &, std::int32_t, RegTree *) const
 Update the leaf values after a tree is built.
 
- Public Member Functions inherited from xgboost::Configurable
virtual void LoadConfig (Json const &in)=0
 Load configuration from JSON object.
 
virtual void SaveConfig (Json *out) const =0
 Save configuration to JSON object.
 

Static Public Member Functions

static constexpr float DefaultBaseScore ()
 
static ObjFunctionCreate (const std::string &name, Context const *ctx)
 Create an objective function according to name.
 

Protected Attributes

Context const * ctx_
 

Detailed Description

interface of objective function

Member Function Documentation

◆ Configure()

virtual void xgboost::ObjFunction::Configure ( const std::vector< std::pair< std::string, std::string > > &  args)
pure virtual

◆ Create()

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

Create an objective function according to name.

Parameters
ctxPointer to runtime parameters.
nameName of the objective.

◆ DefaultEvalMetric()

virtual const char * xgboost::ObjFunction::DefaultEvalMetric ( ) const
pure virtual

◆ DefaultMetricConfig()

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

Return the configuration for the default metric.

Reimplemented in xgboost::obj::LambdaRankNDCG.

◆ EvalTransform()

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

transform prediction values, this is only called when Eval is called, usually it redirect to PredTransform

Parameters
io_predsprediction values, saves to this vector as well

◆ GetGradient()

virtual void xgboost::ObjFunction::GetGradient ( const HostDeviceVector< bst_float > &  preds,
const MetaInfo info,
int  iteration,
HostDeviceVector< GradientPair > *  out_gpair 
)
pure virtual

Get gradient over each of predictions, given existing information.

Parameters
predsprediction of current round
infoinformation about labels, weights, groups in rank
iterationcurrent iteration number.
out_gpairoutput of get gradient, saves gradient and second order gradient in

Implemented in xgboost::obj::RegLossObjOneAPI< Loss >.

◆ InitEstimation()

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

Make initialize estimation of prediction.

Parameters
infoMetaInfo that contains label.
base_scoreOutput estimation.

◆ PredTransform()

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

transform prediction values, this is only called when Prediction is called

Parameters
io_predsprediction values, saves to this vector as well

Reimplemented in xgboost::obj::MyLogistic.

◆ ProbToMargin()

virtual bst_float xgboost::ObjFunction::ProbToMargin ( bst_float  base_score) const
inlinevirtual

transform probability value back to margin this is used to transform user-set base_score back to margin used by gradient boosting

Returns
transformed value

Reimplemented in xgboost::obj::MyLogistic, and xgboost::obj::RegLossObjOneAPI< Loss >.

◆ Targets()

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

◆ Task()

virtual struct ObjInfo xgboost::ObjFunction::Task ( ) const
pure virtual

◆ UpdateTreeLeaf()

virtual void xgboost::ObjFunction::UpdateTreeLeaf ( HostDeviceVector< bst_node_t > const &  ,
MetaInfo const &  ,
float  ,
HostDeviceVector< float > const &  ,
std::int32_t  ,
RegTree  
) const
inlinevirtual

Update the leaf values after a tree is built.

Needed for objectives with 0 hessian.

Note that the leaf update is not well defined for distributed training as XGBoost computes only an average of quantile between workers. This breaks when some leaf have no sample assigned in a local worker.

Parameters
positionThe leaf index for each rows.
infoMetaInfo providing labels and weights.
learning_rateThe learning rate for current iteration.
predictionModel prediction after transformation.
group_idxThe group index for this tree, 0 when it's not multi-target or multi-class.
p_treeTree that needs to be updated.

The documentation for this class was generated from the following files: