xgboost
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
xgboost::TreeUpdater Class Referenceabstract

interface of tree update module, that performs update of a tree. More...

#include <tree_updater.h>

Inheritance diagram for xgboost::TreeUpdater:
Inheritance graph
Collaboration diagram for xgboost::TreeUpdater:
Collaboration graph

Public Member Functions

 TreeUpdater (const Context *ctx)
 
 ~TreeUpdater () override=default
 virtual destructor More...
 
virtual void Configure (const Args &args)=0
 Initialize the updater with given arguments. More...
 
virtual bool CanModifyTree () const
 Whether this updater can be used for updating existing trees. More...
 
virtual bool HasNodePosition () const
 Wether the out_position in Update is valid. This determines whether adaptive tree can be used. More...
 
virtual void Update (tree::TrainParam const *param, HostDeviceVector< GradientPair > *gpair, DMatrix *data, common::Span< HostDeviceVector< bst_node_t >> out_position, const std::vector< RegTree * > &out_trees)=0
 perform update to the tree models More...
 
virtual bool UpdatePredictionCache (const DMatrix *, linalg::MatrixView< float >)
 determines whether updater has enough knowledge about a given dataset to quickly update prediction cache its training data and performs the update if possible. More...
 
virtual char const * Name () const =0
 
- Public Member Functions inherited from xgboost::Configurable
virtual ~Configurable ()=default
 
virtual void LoadConfig (Json const &in)=0
 Load configuration from JSON object. More...
 
virtual void SaveConfig (Json *out) const =0
 Save configuration to JSON object. More...
 

Static Public Member Functions

static TreeUpdaterCreate (const std::string &name, Context const *ctx, ObjInfo const *task)
 Create a tree updater given name. More...
 

Protected Attributes

Context const * ctx_ = nullptr
 

Detailed Description

interface of tree update module, that performs update of a tree.

Constructor & Destructor Documentation

◆ TreeUpdater()

xgboost::TreeUpdater::TreeUpdater ( const Context ctx)
inlineexplicit

◆ ~TreeUpdater()

xgboost::TreeUpdater::~TreeUpdater ( )
overridedefault

virtual destructor

Member Function Documentation

◆ CanModifyTree()

virtual bool xgboost::TreeUpdater::CanModifyTree ( ) const
inlinevirtual

Whether this updater can be used for updating existing trees.

Some updaters are used for building new trees (like hist), while some others are used for modifying existing trees (like prune). Return true if it can modify existing trees.

◆ Configure()

virtual void xgboost::TreeUpdater::Configure ( const Args args)
pure virtual

Initialize the updater with given arguments.

Parameters
argsarguments to the objective function.

◆ Create()

static TreeUpdater* xgboost::TreeUpdater::Create ( const std::string &  name,
Context const *  ctx,
ObjInfo const *  task 
)
static

Create a tree updater given name.

Parameters
nameName of the tree updater.
ctxA global runtime parameter
taskInfomation about the objective.

◆ HasNodePosition()

virtual bool xgboost::TreeUpdater::HasNodePosition ( ) const
inlinevirtual

Wether the out_position in Update is valid. This determines whether adaptive tree can be used.

◆ Name()

virtual char const* xgboost::TreeUpdater::Name ( ) const
pure virtual

◆ Update()

virtual void xgboost::TreeUpdater::Update ( tree::TrainParam const *  param,
HostDeviceVector< GradientPair > *  gpair,
DMatrix data,
common::Span< HostDeviceVector< bst_node_t >>  out_position,
const std::vector< RegTree * > &  out_trees 
)
pure virtual

perform update to the tree models

Parameters
paramHyper-parameter for constructing trees.
gpairthe gradient pair statistics of the data
dataThe data matrix passed to the updater.
out_positionThe leaf index for each row. The index is negated if that row is removed during sampling. So the 3th node is ~3.
out_treesreferences the trees to be updated, updater will change the content of trees note: all the trees in the vector are updated, with the same statistics, but maybe different random seeds, usually one tree is passed in at a time, there can be multiple trees when we train random forest style model

◆ UpdatePredictionCache()

virtual bool xgboost::TreeUpdater::UpdatePredictionCache ( const DMatrix ,
linalg::MatrixView< float >   
)
inlinevirtual

determines whether updater has enough knowledge about a given dataset to quickly update prediction cache its training data and performs the update if possible.

Parameters
datadata matrix
out_predsprediction cache to be updated
Returns
boolean indicating whether updater has capability to update the prediction cache. If true, the prediction cache will have been updated by the time this function returns.

Member Data Documentation

◆ ctx_

Context const* xgboost::TreeUpdater::ctx_ = nullptr
protected

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