Medial Code Documentation
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions
LightGBM::Boosting Class Referenceabstract

The interface for Boosting. More...

#include <boosting.h>

Inheritance diagram for LightGBM::Boosting:
LightGBM::GBDTBase LightGBM::GBDT LightGBM::DART LightGBM::GBDT_Accessor LightGBM::GOSS LightGBM::RF

Public Member Functions

virtual ~Boosting ()
 virtual destructor
 
virtual void Init (const Config *config, const Dataset *train_data, const ObjectiveFunction *objective_function, const std::vector< const Metric * > &training_metrics)=0
 Initialization logic.
 
virtual void MergeFrom (const Boosting *other)=0
 Merge model from other boosting object Will insert to the front of current boosting object.
 
virtual void ShuffleModels (int start_iter, int end_iter)=0
 Shuffle Existing Models.
 
virtual void ResetTrainingData (const Dataset *train_data, const ObjectiveFunction *objective_function, const std::vector< const Metric * > &training_metrics)=0
 
virtual void ResetConfig (const Config *config)=0
 
virtual void AddValidDataset (const Dataset *valid_data, const std::vector< const Metric * > &valid_metrics)=0
 Add a validation data.
 
virtual void Train (int snapshot_freq, const std::string &model_output_path)=0
 
virtual void RefitTree (const std::vector< std::vector< int > > &tree_leaf_prediction)=0
 Update the tree output by new training data.
 
virtual bool TrainOneIter (const score_t *gradients, const score_t *hessians)=0
 Training logic.
 
virtual void RollbackOneIter ()=0
 Rollback one iteration.
 
virtual int GetCurrentIteration () const =0
 return current iteration
 
virtual std::vector< double > GetEvalAt (int data_idx) const =0
 Get evaluation result at data_idx data.
 
virtual const double * GetTrainingScore (int64_t *out_len)=0
 Get current training score.
 
virtual int64_t GetNumPredictAt (int data_idx) const =0
 Get prediction result at data_idx data.
 
virtual void GetPredictAt (int data_idx, double *result, int64_t *out_len)=0
 Get prediction result at data_idx data.
 
virtual int NumPredictOneRow (int num_iteration, bool is_pred_leaf, bool is_pred_contrib) const =0
 
virtual void PredictRaw (const double *features, double *output, const PredictionEarlyStopInstance *early_stop) const =0
 Prediction for one record, not sigmoid transform.
 
virtual void PredictRawByMap (const std::unordered_map< int, double > &features, double *output, const PredictionEarlyStopInstance *early_stop) const =0
 
virtual void Predict (const double *features, double *output, const PredictionEarlyStopInstance *early_stop) const =0
 Prediction for one record, sigmoid transformation will be used if needed.
 
virtual void PredictByMap (const std::unordered_map< int, double > &features, double *output, const PredictionEarlyStopInstance *early_stop) const =0
 
virtual void PredictLeafIndex (const double *features, double *output) const =0
 Prediction for one record with leaf index.
 
virtual void PredictLeafIndexByMap (const std::unordered_map< int, double > &features, double *output) const =0
 
virtual void PredictContrib (const double *features, double *output, const PredictionEarlyStopInstance *early_stop) const =0
 Feature contributions for the model's prediction of one record.
 
virtual std::string DumpModel (int start_iteration, int num_iteration) const =0
 Dump model to json format string.
 
virtual std::string ModelToIfElse (int num_iteration) const =0
 Translate model to if-else statement.
 
virtual bool SaveModelToIfElse (int num_iteration, const char *filename) const =0
 Translate model to if-else statement.
 
virtual bool SaveModelToFile (int start_iteration, int num_iterations, const char *filename) const =0
 Save model to file.
 
std::string SaveModelToString (int num_iterations)
 Save model to string.
 
virtual std::string SaveModelToString (int start_iteration, int num_iterations) const =0
 
bool LoadModelFromString (std::string str)
 Restore from a serialized string.
 
virtual bool LoadModelFromString (const char *buffer, size_t len)=0
 
virtual std::vector< double > FeatureImportance (int num_iteration, int importance_type) const =0
 Calculate feature importances.
 
virtual int MaxFeatureIdx () const =0
 Get max feature index of this model.
 
virtual std::vector< std::string > FeatureNames () const =0
 Get feature names of this model.
 
virtual int LabelIdx () const =0
 Get index of label column.
 
virtual int NumberOfTotalModel () const =0
 Get number of weak sub-models.
 
virtual int NumModelPerIteration () const =0
 Get number of models per iteration.
 
virtual int NumberOfClasses () const =0
 Get number of classes.
 
virtual bool NeedAccuratePrediction () const =0
 The prediction should be accurate or not. True will disable early stopping for prediction.
 
virtual void InitPredict (int num_iteration, bool is_pred_contrib)=0
 Initial work for the prediction.
 
virtual const char * SubModelName () const =0
 Name of submodel.
 
Boostingoperator= (const Boosting &)=delete
 Disable copy.
 
 Boosting (const Boosting &)=delete
 Disable copy.
 

Static Public Member Functions

static bool LoadFileToBoosting (Boosting *boosting, const char *filename)
 
static BoostingCreateBoosting (const std::string &type, const char *filename)
 Create boosting object.
 

Detailed Description

The interface for Boosting.

Member Function Documentation

◆ AddValidDataset()

virtual void LightGBM::Boosting::AddValidDataset ( const Dataset valid_data,
const std::vector< const Metric * > &  valid_metrics 
)
pure virtual

Add a validation data.

Parameters
valid_dataValidation data
valid_metricsMetric for validation data

Implemented in LightGBM::GBDT, and LightGBM::RF.

◆ CreateBoosting()

Boosting * LightGBM::Boosting::CreateBoosting ( const std::string &  type,
const char *  filename 
)
static

Create boosting object.

Parameters
typeType of boosting
formatFormat of model
configconfig for boosting
filenamename of model file, if existing will continue to train from this model
Returns
The boosting object

◆ DumpModel()

virtual std::string LightGBM::Boosting::DumpModel ( int  start_iteration,
int  num_iteration 
) const
pure virtual

Dump model to json format string.

Parameters
start_iterationThe model will be saved start from
num_iterationNumber of iterations that want to dump, -1 means dump all
Returns
Json format string of model

Implemented in LightGBM::GBDT.

◆ FeatureImportance()

virtual std::vector< double > LightGBM::Boosting::FeatureImportance ( int  num_iteration,
int  importance_type 
) const
pure virtual

Calculate feature importances.

Parameters
num_iterationNumber of model that want to use for feature importance, -1 means use all
importance_type0 for split, 1 for gain
Returns
vector of feature_importance

Implemented in LightGBM::GBDT.

◆ FeatureNames()

virtual std::vector< std::string > LightGBM::Boosting::FeatureNames ( ) const
pure virtual

Get feature names of this model.

Returns
Feature names of this model

Implemented in LightGBM::GBDT.

◆ GetCurrentIteration()

virtual int LightGBM::Boosting::GetCurrentIteration ( ) const
pure virtual

return current iteration

Implemented in LightGBM::GBDT.

◆ GetEvalAt()

virtual std::vector< double > LightGBM::Boosting::GetEvalAt ( int  data_idx) const
pure virtual

Get evaluation result at data_idx data.

Parameters
data_idx0: training data, 1: 1st validation data
Returns
evaluation result

Implemented in LightGBM::GBDT.

◆ GetNumPredictAt()

virtual int64_t LightGBM::Boosting::GetNumPredictAt ( int  data_idx) const
pure virtual

Get prediction result at data_idx data.

Parameters
data_idx0: training data, 1: 1st validation data
Returns
out_len length of returned score

Implemented in LightGBM::GBDT.

◆ GetPredictAt()

virtual void LightGBM::Boosting::GetPredictAt ( int  data_idx,
double *  result,
int64_t *  out_len 
)
pure virtual

Get prediction result at data_idx data.

Parameters
data_idx0: training data, 1: 1st validation data
resultused to store prediction result, should allocate memory before call this function
out_lenlength of returned score

Implemented in LightGBM::GBDT.

◆ GetTrainingScore()

virtual const double * LightGBM::Boosting::GetTrainingScore ( int64_t *  out_len)
pure virtual

Get current training score.

Parameters
out_lenlength of returned score
Returns
training score

Implemented in LightGBM::DART, and LightGBM::GBDT.

◆ Init()

virtual void LightGBM::Boosting::Init ( const Config config,
const Dataset train_data,
const ObjectiveFunction objective_function,
const std::vector< const Metric * > &  training_metrics 
)
pure virtual

Initialization logic.

Parameters
configConfigs for boosting
train_dataTraining data
objective_functionTraining objective function
training_metricsTraining metric

Implemented in LightGBM::DART, LightGBM::GOSS, LightGBM::RF, and LightGBM::GBDT.

◆ InitPredict()

virtual void LightGBM::Boosting::InitPredict ( int  num_iteration,
bool  is_pred_contrib 
)
pure virtual

Initial work for the prediction.

Parameters
num_iterationnumber of used iteration
is_pred_contrib

Implemented in LightGBM::GBDT.

◆ LabelIdx()

virtual int LightGBM::Boosting::LabelIdx ( ) const
pure virtual

Get index of label column.

Returns
index of label column

Implemented in LightGBM::GBDT.

◆ LoadModelFromString()

bool LightGBM::Boosting::LoadModelFromString ( std::string  str)
inline

Restore from a serialized string.

Parameters
bufferThe content of model
lenThe length of buffer
Returns
true if succeeded

◆ MaxFeatureIdx()

virtual int LightGBM::Boosting::MaxFeatureIdx ( ) const
pure virtual

Get max feature index of this model.

Returns
Max feature index of this model

Implemented in LightGBM::GBDT.

◆ MergeFrom()

virtual void LightGBM::Boosting::MergeFrom ( const Boosting other)
pure virtual

Merge model from other boosting object Will insert to the front of current boosting object.

Parameters
other

Implemented in LightGBM::GBDT.

◆ ModelToIfElse()

virtual std::string LightGBM::Boosting::ModelToIfElse ( int  num_iteration) const
pure virtual

Translate model to if-else statement.

Parameters
num_iterationNumber of iterations that want to translate, -1 means translate all
Returns
if-else format codes of model

Implemented in LightGBM::GBDT.

◆ NeedAccuratePrediction()

virtual bool LightGBM::Boosting::NeedAccuratePrediction ( ) const
pure virtual

The prediction should be accurate or not. True will disable early stopping for prediction.

Implemented in LightGBM::GBDT, and LightGBM::RF.

◆ NumberOfClasses()

virtual int LightGBM::Boosting::NumberOfClasses ( ) const
pure virtual

Get number of classes.

Returns
Number of classes

Implemented in LightGBM::GBDT.

◆ NumberOfTotalModel()

virtual int LightGBM::Boosting::NumberOfTotalModel ( ) const
pure virtual

Get number of weak sub-models.

Returns
Number of weak sub-models

Implemented in LightGBM::GBDT.

◆ NumModelPerIteration()

virtual int LightGBM::Boosting::NumModelPerIteration ( ) const
pure virtual

Get number of models per iteration.

Returns
Number of models per iteration

Implemented in LightGBM::GBDT.

◆ NumPredictOneRow()

virtual int LightGBM::Boosting::NumPredictOneRow ( int  num_iteration,
bool  is_pred_leaf,
bool  is_pred_contrib 
) const
pure virtual

Implemented in LightGBM::GBDT.

◆ Predict()

virtual void LightGBM::Boosting::Predict ( const double *  features,
double *  output,
const PredictionEarlyStopInstance early_stop 
) const
pure virtual

Prediction for one record, sigmoid transformation will be used if needed.

Parameters
feature_valuesFeature value on this record
outputPrediction result for this record
early_stopEarly stopping instance. If nullptr, no early stopping is applied and all models are evaluated.

Implemented in LightGBM::GBDT.

◆ PredictContrib()

virtual void LightGBM::Boosting::PredictContrib ( const double *  features,
double *  output,
const PredictionEarlyStopInstance early_stop 
) const
pure virtual

Feature contributions for the model's prediction of one record.

Parameters
feature_valuesFeature value on this record
outputPrediction result for this record
early_stopEarly stopping instance. If nullptr, no early stopping is applied and all models are evaluated.

Implemented in LightGBM::GBDT.

◆ PredictLeafIndex()

virtual void LightGBM::Boosting::PredictLeafIndex ( const double *  features,
double *  output 
) const
pure virtual

Prediction for one record with leaf index.

Parameters
feature_valuesFeature value on this record
outputPrediction result for this record

Implemented in LightGBM::GBDT.

◆ PredictRaw()

virtual void LightGBM::Boosting::PredictRaw ( const double *  features,
double *  output,
const PredictionEarlyStopInstance early_stop 
) const
pure virtual

Prediction for one record, not sigmoid transform.

Parameters
feature_valuesFeature value on this record
outputPrediction result for this record
early_stopEarly stopping instance. If nullptr, no early stopping is applied and all models are evaluated.

Implemented in LightGBM::GBDT.

◆ RefitTree()

virtual void LightGBM::Boosting::RefitTree ( const std::vector< std::vector< int > > &  tree_leaf_prediction)
pure virtual

Update the tree output by new training data.

Implemented in LightGBM::GBDT.

◆ ResetConfig()

virtual void LightGBM::Boosting::ResetConfig ( const Config config)
pure virtual

◆ ResetTrainingData()

virtual void LightGBM::Boosting::ResetTrainingData ( const Dataset train_data,
const ObjectiveFunction objective_function,
const std::vector< const Metric * > &  training_metrics 
)
pure virtual

◆ RollbackOneIter()

virtual void LightGBM::Boosting::RollbackOneIter ( )
pure virtual

Rollback one iteration.

Implemented in LightGBM::GBDT, and LightGBM::RF.

◆ SaveModelToFile()

virtual bool LightGBM::Boosting::SaveModelToFile ( int  start_iteration,
int  num_iterations,
const char *  filename 
) const
pure virtual

Save model to file.

Parameters
start_iterationThe model will be saved start from
num_iterationsNumber of model that want to save, -1 means save all
is_finishIs training finished or not
filenameFilename that want to save to
Returns
true if succeeded

Implemented in LightGBM::GBDT.

◆ SaveModelToIfElse()

virtual bool LightGBM::Boosting::SaveModelToIfElse ( int  num_iteration,
const char *  filename 
) const
pure virtual

Translate model to if-else statement.

Parameters
num_iterationNumber of iterations that want to translate, -1 means translate all
filenameFilename that want to save to
Returns
is_finish Is training finished or not

Implemented in LightGBM::GBDT.

◆ SaveModelToString()

std::string LightGBM::Boosting::SaveModelToString ( int  num_iterations)
inline

Save model to string.

Parameters
start_iterationThe model will be saved start from
num_iterationsNumber of model that want to save, -1 means save all
Returns
Non-empty string if succeeded

◆ ShuffleModels()

virtual void LightGBM::Boosting::ShuffleModels ( int  start_iter,
int  end_iter 
)
pure virtual

Shuffle Existing Models.

Implemented in LightGBM::GBDT.

◆ SubModelName()

virtual const char * LightGBM::Boosting::SubModelName ( ) const
pure virtual

Name of submodel.

Implemented in LightGBM::GBDT.

◆ Train()

virtual void LightGBM::Boosting::Train ( int  snapshot_freq,
const std::string &  model_output_path 
)
pure virtual

Implemented in LightGBM::GBDT.

◆ TrainOneIter()

virtual bool LightGBM::Boosting::TrainOneIter ( const score_t gradients,
const score_t hessians 
)
pure virtual

Training logic.

Parameters
gradientsnullptr for using default objective, otherwise use self-defined boosting
hessiansnullptr for using default objective, otherwise use self-defined boosting
Returns
True if cannot train anymore

Implemented in LightGBM::DART, LightGBM::GBDT, and LightGBM::RF.


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