Go to the documentation of this file.
8 #ifndef XGBOOST_LEARNER_H_
9 #define XGBOOST_LEARNER_H_
29 class GradientBooster;
94 virtual void UpdateOneIter(
int iter, std::shared_ptr<DMatrix> train) = 0;
103 std::shared_ptr<DMatrix> train,
113 const std::vector<std::shared_ptr<DMatrix>>& data_sets,
114 const std::vector<std::string>& data_names) = 0;
128 virtual void Predict(std::shared_ptr<DMatrix> data,
131 unsigned layer_begin,
133 bool training =
false,
134 bool pred_leaf =
false,
135 bool pred_contribs =
false,
136 bool approx_contribs =
false,
137 bool pred_interactions =
false) = 0;
152 std::shared_ptr<DMatrix> p_m,
156 uint32_t layer_begin, uint32_t layer_end) = 0;
163 std::vector<bst_feature_t>* features,
164 std::vector<float>* scores) = 0;
170 virtual uint32_t
Groups()
const = 0;
175 virtual void LoadModel(dmlc::Stream* fi) = 0;
176 virtual void SaveModel(dmlc::Stream* fo)
const = 0;
192 virtual void SetParam(
const std::string& key,
const std::string& value) = 0;
208 virtual void SetAttr(
const std::string& key,
const std::string& value) = 0;
216 virtual bool GetAttr(
const std::string& key, std::string* out)
const = 0;
222 virtual bool DelAttr(
const std::string& key) = 0;
227 virtual std::vector<std::string>
GetAttrNames()
const = 0;
263 virtual Learner *
Slice(int32_t begin_layer, int32_t end_layer, int32_t step,
264 bool *out_of_bound) = 0;
274 std::string format) = 0;
282 static Learner*
Create(
const std::vector<std::shared_ptr<DMatrix> >& cache_data);
295 std::unique_ptr<ObjFunction>
obj_;
297 std::unique_ptr<GradientBooster>
gbm_;
304 struct LearnerModelParamLegacy;
328 #endif // XGBOOST_LEARNER_H_
std::vector< std::pair< std::string, std::string > > Args
Definition: base.h:265
virtual std::vector< std::string > DumpModel(const FeatureMap &fmap, bool with_stats, std::string format)=0
dump the model in the requested format
Interface of predictor, performs predictions for a gradient booster.
PredictionCacheEntry prediction_entry
Temp variable for returning prediction result.
Definition: learner.h:59
Contains pointer to input matrix and associated cached predictions.
Definition: predictor.h:35
uint32_t num_output_group
Definition: learner.h:315
Defines the abstract interface for different components in XGBoost.
virtual Learner * Slice(int32_t begin_layer, int32_t end_layer, int32_t step, bool *out_of_bound)=0
Slice the model.
virtual void SetParams(Args const &args)=0
Set multiple parameters at once.
virtual void Configure()=0
Configure Learner based on set parameters.
virtual void GetFeatureNames(std::vector< std::string > *fn) const =0
Get the feature names for current booster.
Definition: generic_parameters.h:15
@ kRegression
Definition: task.h:27
Definition: host_device_vector.h:86
std::vector< const char * > ret_vec_charp
result holder for returning string pointers
Definition: learner.h:53
virtual void BoostOneIter(int iter, std::shared_ptr< DMatrix > train, HostDeviceVector< GradientPair > *in_gpair)=0
Do customized gradient boosting with in_gpair. in_gair can be mutated after this call.
bool Initialized() const
Definition: learner.h:324
A device-and-host vector abstraction layer.
bst_float base_score
Definition: learner.h:311
virtual void SetParam(const std::string &key, const std::string &value)=0
Set parameter for booster.
virtual void Predict(std::shared_ptr< DMatrix > data, bool output_margin, HostDeviceVector< bst_float > *out_preds, unsigned layer_begin, unsigned layer_end, bool training=false, bool pred_leaf=false, bool pred_contribs=false, bool approx_contribs=false, bool pred_interactions=false)=0
get prediction given the model.
defines configuration macros of xgboost.
std::vector< bst_ulong > prediction_shape
Temp variable for returning prediction shape.
Definition: learner.h:61
virtual GenericParameter const * Ctx() const =0
Return the context object of this Booster.
Feature map data structure to help visualization and model dump.
std::string ret_str
result holder for returning string
Definition: learner.h:47
std::unique_ptr< ObjFunction > obj_
objective function
Definition: learner.h:295
std::vector< bst_float > ret_vec_float
returning float vector.
Definition: learner.h:55
std::unique_ptr< GradientBooster > gbm_
The gradient booster used by the model.
Definition: learner.h:297
Definition: learner.h:309
Feature map data structure to help text model dump. TODO(tqchen) consider make it even more lightweig...
Definition: feature_map.h:22
virtual void SetAttr(const std::string &key, const std::string &value)=0
Set additional attribute to the Booster.
virtual bool GetAttr(const std::string &key, std::string *out) const =0
Get attribute from the booster. The property will be saved along the booster.
virtual void GetFeatureTypes(std::vector< std::string > *ft) const =0
Get the feature types for current booster.
virtual void UpdateOneIter(int iter, std::shared_ptr< DMatrix > train)=0
update the model for one iteration With the specified objective function.
std::vector< std::string > ret_vec_str
result holder for returning strings
Definition: learner.h:51
static Learner * Create(const std::vector< std::shared_ptr< DMatrix > > &cache_data)
Create a new instance of learner.
bool AllowLazyCheckPoint() const
ObjInfo task
Definition: learner.h:317
virtual void InplacePredict(dmlc::any const &x, std::shared_ptr< DMatrix > p_m, PredictionType type, float missing, HostDeviceVector< bst_float > **out_preds, uint32_t layer_begin, uint32_t layer_end)=0
Inplace prediction.
virtual void SetFeatureNames(std::vector< std::string > const &fn)=0
Set the feature names for current booster.
virtual uint32_t Groups() const =0
std::vector< GradientPair > tmp_gpair
temp variable of gradient pairs.
Definition: learner.h:57
virtual uint32_t GetNumFeature() const =0
Get the number of features of the booster.
~Learner() override
virtual destructor
GenericParameter generic_parameters_
Training parameter.
Definition: learner.h:301
entry to to easily hold returning information
Definition: learner.h:45
virtual std::vector< std::string > GetAttrNames() const =0
Get a vector of attribute names from the booster.
span class implementation, based on ISO++20 span<T>. The interface should be the same.
Definition: span.h:148
virtual const std::map< std::string, std::string > & GetConfigurationArguments() const =0
Get configuration arguments currently stored by the learner.
virtual void CalcFeatureScore(std::string const &importance_type, common::Span< int32_t const > trees, std::vector< bst_feature_t > *features, std::vector< float > *scores)=0
Calculate feature score. See doc in C API for outputs.
std::vector< char > ret_char_vec
result holder for returning raw buffer
Definition: learner.h:49
void SaveModel(Json *out) const override=0
saves the model config to a JSON object
Learner class that does training and prediction. This is the user facing module of xgboost training....
Definition: learner.h:80
virtual std::string EvalOneIter(int iter, const std::vector< std::shared_ptr< DMatrix >> &data_sets, const std::vector< std::string > &data_names)=0
evaluate the model for specific iteration using the configured metrics.
std::vector< std::unique_ptr< Metric > > metrics_
The evaluation metrics used to evaluate the model.
Definition: learner.h:299
virtual XGBAPIThreadLocalEntry & GetThreadLocal() const =0
Data structure representing JSON format.
Definition: json.h:352
LearnerModelParam()=default
virtual int32_t BoostedRounds() const =0
uint32_t num_feature
Definition: learner.h:313
PredictionType
Definition: learner.h:34
A struct returned by objective, which determines task at hand. The struct is not used by any algorith...
Definition: task.h:24
virtual bool DelAttr(const std::string &key)=0
Delete an attribute from the booster.
virtual void SetFeatureTypes(std::vector< std::string > const &ft)=0
Set the feature types for current booster.
void LoadModel(Json const &in) override=0
load the model from a JSON object
namespace of xgboost
Definition: base.h:110
float bst_float
float type, used for storing statistics
Definition: base.h:119