|
Medial Code Documentation
|
Copyright 2021-2023 by XGBoost Contributors. More...
Data Structures | |
| class | BoundedHistCollection |
| A persistent cache for CPU histogram. More... | |
| class | ColMaker |
| column-wise update to construct a tree More... | |
| struct | ColMakerTrainParam |
| class | ColumnSplitHelper |
| class | CommonRowPartitioner |
| struct | CPUExpandEntry |
| class | Driver |
| struct | ExpandEntryImpl |
| Structure for storing tree split candidate. More... | |
| class | GloablApproxBuilder |
| class | GlobalApproxUpdater |
| Implementation for the approx tree method. More... | |
| class | HistEvaluator |
| struct | HistMakerTrainParam |
| class | HistMultiEvaluator |
| class | HistogramBuilder |
| class | HistUpdater |
| Tree updater for single-target trees. More... | |
| struct | MultiExpandEntry |
| class | MultiHistogramBuilder |
| Histogram builder that can handle multiple targets. More... | |
| class | MultiTargetHistBuilder |
| Updater for building multi-target trees. More... | |
| class | QuantileHistMaker |
| construct a tree using quantized feature values More... | |
| struct | RandomReplace |
| struct | SplitEntryContainer |
| statistics that is helpful to store and represent a split solution for the tree More... | |
| class | TestCategoricalSplitWithMissing |
| class | TestPartitionBasedSplit |
| Enumerate all possible partitions for categorical split. More... | |
| struct | TrainParam |
| training parameters for regression tree More... | |
| class | TreeEvaluator |
| class | TreePruner |
| pruner that prunes a tree after growing finishes More... | |
| class | TreeRefresher |
| pruner that prunes a tree after growing finishes More... | |
| class | TreeSyncher |
| syncher that synchronize the tree in all distributed nodes can implement various strategies, so far it is always set to node 0's tree More... | |
Typedefs | |
| using | SplitEntry = SplitEntryContainer< GradStats > |
Enumerations | |
| enum | SplitType { kNum = 0 , kOneHot = 1 , kPart = 2 } |
Functions | |
| template<typename ExpandEntryT > | |
| bool | DepthWise (const ExpandEntryT &lhs, const ExpandEntryT &rhs) |
| template<typename ExpandEntryT > | |
| bool | LossGuide (const ExpandEntryT &lhs, const ExpandEntryT &rhs) |
| void | FitStump (Context const *ctx, MetaInfo const &info, HostDeviceVector< GradientPair > const &gpair, bst_target_t n_targets, linalg::Vector< float > *out) |
| Fit a tree stump as an estimation of base_score. | |
| template<typename T > | |
| XGBOOST_DEVICE double | CalcUnregularizedWeight (T sum_grad, T sum_hess) |
| template<typename Partitioner > | |
| void | UpdatePredictionCacheImpl (Context const *ctx, RegTree const *p_last_tree, std::vector< Partitioner > const &partitioner, linalg::VectorView< float > out_preds) |
| CPU implementation of update prediction cache, which calculates the leaf value for the last tree and accumulates it to prediction vector. | |
| template<typename Partitioner > | |
| void | UpdatePredictionCacheImpl (Context const *ctx, RegTree const *p_last_tree, std::vector< Partitioner > const &partitioner, linalg::MatrixView< float > out_preds) |
| void | AssignNodes (RegTree const *p_tree, std::vector< MultiExpandEntry > const &valid_candidates, common::Span< bst_node_t > nodes_to_build, common::Span< bst_node_t > nodes_to_sub) |
| Decide which node as the build node for multi-target trees. | |
| void | AssignNodes (RegTree const *p_tree, std::vector< CPUExpandEntry > const &candidates, common::Span< bst_node_t > nodes_to_build, common::Span< bst_node_t > nodes_to_sub) |
| Decide which node as the build node. | |
| template<typename Partitioner > | |
| common::BlockedSpace2d | ConstructHistSpace (Partitioner const &partitioners, std::vector< bst_node_t > const &nodes_to_build) |
| DMLC_REGISTER_PARAMETER (HistMakerTrainParam) | |
| void | SampleGradient (Context const *ctx, TrainParam param, linalg::MatrixView< GradientPair > out) |
| template<typename TrainingParams , typename T > | |
| XGBOOST_DEVICE T | CalcGainGivenWeight (const TrainingParams &p, T sum_grad, T sum_hess, T w) |
| template<typename TrainingParams , typename T > | |
| XGBOOST_DEVICE T | CalcWeight (const TrainingParams &p, T sum_grad, T sum_hess) |
| template<typename TrainingParams , typename T > | |
| XGBOOST_DEVICE T | CalcGain (const TrainingParams &p, T sum_grad, T sum_hess) |
| template<typename TrainingParams , typename StatT , typename T = decltype(StatT().GetHess())> | |
| XGBOOST_DEVICE T | CalcGain (const TrainingParams &p, StatT stat) |
| template<typename TrainingParams , typename GpairT > | |
| XGBOOST_DEVICE float | CalcWeight (const TrainingParams &p, GpairT sum_grad) |
| void | CalcWeight (TrainParam const &p, linalg::VectorView< GradientPairPrecise const > grad_sum, float eta, linalg::VectorView< float > out_w) |
| multi-target weight, calculated with learning rate. | |
| void | CalcWeight (TrainParam const &p, linalg::VectorView< GradientPairPrecise const > grad_sum, linalg::VectorView< float > out_w) |
| multi-target weight | |
| double | CalcGainGivenWeight (TrainParam const &p, linalg::VectorView< GradientPairPrecise const > sum_grad, linalg::VectorView< float const > weight) |
| struct | XGBOOST_ALIGNAS (16) GradStats |
| core statistics used for tree construction | |
| template<typename T , typename U > | |
| std::vector< T > & | CopyStats (linalg::VectorView< U > const &src, std::vector< T > *dst) |
| GradStats & | CopyStats (GradStats const &src, GradStats *dst) |
| DMLC_REGISTER_PARAMETER (TrainParam) | |
| DMLC_REGISTRY_LINK_TAG (updater_colmaker) | |
| DMLC_REGISTRY_LINK_TAG (updater_refresh) | |
| DMLC_REGISTRY_LINK_TAG (updater_prune) | |
| DMLC_REGISTRY_LINK_TAG (updater_quantile_hist) | |
| DMLC_REGISTRY_LINK_TAG (updater_approx) | |
| DMLC_REGISTRY_LINK_TAG (updater_sync) | |
| DMLC_REGISTRY_FILE_TAG (updater_approx) | |
| DMLC_REGISTRY_FILE_TAG (grow_histmaker) | |
| describe ("Tree constructor that uses approximate histogram construction " "for each node.") .set_body([](Context const *ctx | |
| DMLC_REGISTRY_FILE_TAG (updater_colmaker) | |
| DMLC_REGISTER_PARAMETER (ColMakerTrainParam) | |
| describe ("Grow tree with parallelization over columns.") .set_body([](Context const *ctx | |
| DMLC_REGISTRY_FILE_TAG (updater_prune) | |
| describe ("Pruner that prune the tree according to statistics.") .set_body([](Context const *ctx | |
| DMLC_REGISTRY_FILE_TAG (updater_quantile_hist) | |
| BatchParam | HistBatch (TrainParam const *param) |
| template<typename ExpandEntry , typename Updater > | |
| void | UpdateTree (common::Monitor *monitor_, linalg::MatrixView< GradientPair const > gpair, Updater *updater, DMatrix *p_fmat, TrainParam const *param, HostDeviceVector< bst_node_t > *p_out_position, RegTree *p_tree) |
| describe ("Grow tree using quantized histogram.") .set_body([](Context const *ctx | |
| DMLC_REGISTRY_FILE_TAG (updater_refresh) | |
| describe ("Refresher that refreshes the weight and statistics according to data.") .set_body([](Context const *ctx | |
| DMLC_REGISTRY_FILE_TAG (updater_sync) | |
| describe ("Syncher that synchronize the tree in all distributed nodes.") .set_body([](Context const *ctx | |
| void | TestEvaluateSplits (bool force_read_by_column) |
| TEST (HistEvaluator, Evaluate) | |
| TEST (HistMultiEvaluator, Evaluate) | |
| TEST (HistEvaluator, Apply) | |
| TEST_F (TestPartitionBasedSplit, CPUHist) | |
| TEST (HistEvaluator, Categorical) | |
| TEST_F (TestCategoricalSplitWithMissing, HistEvaluator) | |
| void | TestAddHistRows (bool is_distributed) |
| TEST (CPUHistogram, AddRows) | |
| void | TestSyncHist (bool is_distributed) |
| TEST (CPUHistogram, SyncHist) | |
| void | TestBuildHistogram (bool is_distributed, bool force_read_by_column, bool is_col_split) |
| TEST (CPUHistogram, BuildHist) | |
| TEST (CPUHistogram, BuildHistColSplit) | |
| TEST (CPUHistogram, Categorical) | |
| TEST (CPUHistogram, ExternalMemory) | |
| TEST_P (OverflowTest, Overflow) | |
| INSTANTIATE_TEST_SUITE_P (CPUHistogram, OverflowTest, ::testing::ValuesIn(MakeParamsForTest())) | |
| TEST (Sampler, Basic) | |
| TEST (Approx, Partitioner) | |
| TEST (Approx, PartitionerColSplit) | |
| TEST (CommonRowPartitioner, LeafPartition) | |
| TEST (CPUFeatureInteractionConstraint, Empty) | |
| TEST (CPUFeatureInteractionConstraint, Basic) | |
| TEST (CPUMonoConstraint, Basic) | |
| auto | MakeCutsForTest (std::vector< float > values, std::vector< uint32_t > ptrs, std::vector< float > min_values, int32_t device) |
| TEST (InitEstimation, FitStump) | |
| TEST (InitEstimation, FitStumpColumnSplit) | |
| std::shared_ptr< DMatrix > | GenerateDMatrix (std::size_t rows, std::size_t cols, bool categorical=false) |
| TEST (GrowHistMaker, InteractionConstraint) | |
| TEST (GrowHistMaker, ColumnSplitNumerical) | |
| TEST (GrowHistMaker, ColumnSplitCategorical) | |
| void | GetSplit (RegTree *tree, float split_value, std::vector< CPUExpandEntry > *candidates) |
| void | GetMultiSplitForTest (RegTree *tree, float split_value, std::vector< MultiExpandEntry > *candidates) |
| TEST (Updater, Prune) | |
| TEST (QuantileHist, Partitioner) | |
| TEST (QuantileHist, MultiPartitioner) | |
| TEST (QuantileHist, PartitionerColSplit) | |
| TEST (QuantileHist, MultiPartitionerColSplit) | |
| TEST (QuantileHist, ColumnSplit) | |
| TEST (QuantileHist, ColumnSplitMultiTarget) | |
| TEST (Updater, Refresh) | |
Variables | |
| ObjInfo const * | task |
| auto { return new ColMaker(ctx) | |
Copyright 2021-2023 by XGBoost Contributors.
Copyright 2018-2023 by XGBoost Contributors.
Copyright 2019-2023 by XGBoost Contributors.
Copyright 2022-2023 by XGBoost Contributors.
Copyright 2022-2023 by XGBoost contributors.
Copyright 2018-2023 by Contributors.
Copyright 2021-2023 by XGBoost contributors.
Copyright 2021-2023, XGBoost Contributors.
Copyright 2023 by XGBoost Contributors.
Copyright 2021-2023 XGBoost contributors.
Implementation for the approx tree method.
| void xgboost::tree::UpdatePredictionCacheImpl | ( | Context const * | ctx, |
| RegTree const * | p_last_tree, | ||
| std::vector< Partitioner > const & | partitioner, | ||
| linalg::VectorView< float > | out_preds | ||
| ) |
CPU implementation of update prediction cache, which calculates the leaf value for the last tree and accumulates it to prediction vector.
| p_last_tree | The last tree being updated by tree updater |
| void xgboost::tree::UpdateTree | ( | common::Monitor * | monitor_, |
| linalg::MatrixView< GradientPair const > | gpair, | ||
| Updater * | updater, | ||
| DMatrix * | p_fmat, | ||
| TrainParam const * | param, | ||
| HostDeviceVector< bst_node_t > * | p_out_position, | ||
| RegTree * | p_tree | ||
| ) |
Note for update position Root: Not applied: No need to update position as initialization has got all the rows ordered. Applied: Update position is run on applied nodes so the rows are partitioned. Non-root: Not applied: That node is root of the subtree, same rule as root. Applied: Ditto
| struct xgboost::tree::XGBOOST_ALIGNAS | ( | 16 | ) |
core statistics used for tree construction
sum gradient statistics
sum hessian statistics
accumulate statistics
| p | the gradient pair |
add statistics to the data
same as add, reduce is used in All Reduce
set current value to a - b
add statistics to the data
| ObjInfo const * xgboost::tree::task |