7 #ifndef XGBOOST_OBJECTIVE_H_
8 #define XGBOOST_OBJECTIVE_H_
10 #include <dmlc/registry.h>
100 [[nodiscard]]
virtual struct ObjInfo Task() const = 0;
107 LOG(FATAL) <<
"multioutput is not supported by the current objective function";
146 :
public dmlc::FunctionRegEntryBase<ObjFunctionReg,
147 std::function<ObjFunction* ()> > {
162 #define XGBOOST_REGISTER_OBJECTIVE(UniqueId, Name) \
163 static DMLC_ATTRIBUTE_UNUSED ::xgboost::ObjFunctionReg & \
164 __make_ ## ObjFunctionReg ## _ ## UniqueId ## __ = \
165 ::dmlc::Registry< ::xgboost::ObjFunctionReg>::Get()->__REGISTER__(Name)
Defines configuration macros and basic types for xgboost.
Data structure representing JSON format.
Definition: json.h:396
The interface of objective function.
Definition: objective.h:28
virtual void UpdateTreeLeaf(HostDeviceVector< bst_node_t > const &, MetaInfo const &, float, HostDeviceVector< float > const &, bst_target_t, RegTree *) const
Update the leaf values after a tree is built. Needed for objectives with 0 hessian.
Definition: objective.h:129
virtual void EvalTransform(HostDeviceVector< float > *io_preds)
Apply inverse link (activation) function to prediction values.
Definition: objective.h:75
virtual void InitEstimation(MetaInfo const &info, linalg::Vector< float > *base_score) const
Obtain the initial estimation of prediction (intercept).
static constexpr float DefaultBaseScore()
Definition: objective.h:33
virtual void GetGradient(HostDeviceVector< float > const &preds, MetaInfo const &info, std::int32_t iter, linalg::Matrix< GradientPair > *out_gpair)=0
Get gradient over each of predictions, given existing information.
Context const * Ctx() const
Getter of the context.
Definition: objective.h:112
virtual void Configure(Args const &args)=0
Configure the objective with the specified parameters.
Context const * ctx_
Definition: objective.h:30
virtual void PredTransform(HostDeviceVector< float > *) const
Apply inverse link (activation) function to prediction values.
Definition: objective.h:67
static ObjFunction * Create(const std::string &name, Context const *ctx)
Create an objective function according to the name.
virtual Json DefaultMetricConfig() const
Return the configuration for the default metric.
Definition: objective.h:59
virtual struct ObjInfo Task() const =0
Return task of this objective.
~ObjFunction() override=default
virtual const char * DefaultEvalMetric() const =0
virtual void ProbToMargin(linalg::Vector< float > *) const
Apply the link function to the intercept.
Definition: objective.h:86
virtual bst_target_t Targets(MetaInfo const &info) const
Return number of targets for input matrix. Right now XGBoost supports only multi-target regression.
Definition: objective.h:105
define regression tree to be the most common tree model.
Definition: tree_model.h:81
A tensor storage. To use it for other functionality like slicing one needs to obtain a view first....
Definition: linalg.h:760
auto Shape() const
Definition: linalg.h:882
The input data structure of xgboost.
A device-and-host vector abstraction layer.
Linear algebra related utilities.
Defines the abstract interface for different components in XGBoost.
Learner interface that integrates objective, gbm and evaluation together. This is the user facing XGB...
Definition: base.h:89
std::vector< std::pair< std::string, std::string > > Args
Definition: base.h:306
std::uint32_t bst_target_t
Type for indexing into output targets.
Definition: base.h:119
Runtime context for XGBoost. Contains information like threads and device.
Definition: context.h:142
Registry entry for objective factory functions.
Definition: objective.h:147
A struct returned by objective, which determines task at hand. The struct is not used by any algorith...
Definition: task.h:24