7 #ifndef XGBOOST_OBJECTIVE_H_ 8 #define XGBOOST_OBJECTIVE_H_ 10 #include <dmlc/registry.h> 17 #include "../../src/common/host_device_vector.h" 33 template<
typename PairIter>
34 inline void Configure(PairIter begin, PairIter end);
39 virtual void Configure(
const std::vector<std::pair<std::string, std::string> >& args) = 0;
86 template<
typename PairIter>
88 std::vector<std::pair<std::string, std::string> > vec(begin, end);
96 :
public dmlc::FunctionRegEntryBase<ObjFunctionReg,
97 std::function<ObjFunction* ()> > {
112 #define XGBOOST_REGISTER_OBJECTIVE(UniqueId, Name) \ 113 static DMLC_ATTRIBUTE_UNUSED ::xgboost::ObjFunctionReg & \ 114 __make_ ## ObjFunctionReg ## _ ## UniqueId ## __ = \ 115 ::dmlc::Registry< ::xgboost::ObjFunctionReg>::Get()->__REGISTER__(Name) 117 #endif // XGBOOST_OBJECTIVE_H_ 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.
float bst_float
float type, used for storing statistics
Definition: base.h:89
static ObjFunction * Create(const std::string &name)
Create an objective function according to name.
The input data structure of xgboost.
Registry entry for objective factory functions.
Definition: objective.h:95
virtual const char * DefaultEvalMetric() const =0
virtual void EvalTransform(HostDeviceVector< bst_float > *io_preds)
transform prediction values, this is only called when Eval is called, usually it redirect to PredTran...
Definition: objective.h:66
interface of objective function
Definition: objective.h:23
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 marg...
Definition: objective.h:75
namespace of xgboost
Definition: base.h:79
defines configuration macros of xgboost.
void Configure(PairIter begin, PairIter end)
set configuration from pair iterators.
Definition: objective.h:87
virtual void PredTransform(HostDeviceVector< bst_float > *io_preds)
transform prediction values, this is only called when Prediction is called
Definition: objective.h:59
virtual ~ObjFunction()=default
virtual destructor