C++ API Reference for Intel® Data Analytics Acceleration Library 2019 Update 5

gbt_regression_model_builder.h
1 /* file: gbt_regression_model_builder.h */
2 /*******************************************************************************
3 * Copyright 2014-2019 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Implementation of class defining gradient boosting trees regression model builder.
19 //--
20 */
21 #ifndef __GBT_REGRESSION_MODEL_BUILDER_H__
22 #define __GBT_REGRESSION_MODEL_BUILDER_H__
23 
24 #include "algorithms/gradient_boosted_trees/gbt_regression_model.h"
25 
26 namespace daal
27 {
28 namespace algorithms
29 {
30 namespace gbt
31 {
40 namespace regression
41 {
45 namespace interface1
46 {
58 class DAAL_EXPORT ModelBuilder
59 {
60 public:
64  typedef size_t NodeId;
65 
69  typedef size_t TreeId;
70 
71  static const NodeId noParent = static_cast<size_t>(-1);
78  ModelBuilder(size_t nFeatures, size_t nIterations)
79  {
80  _status |= initialize(nFeatures, nIterations);
81  services::throwIfPossible(_status);
82  }
83 
89  TreeId createTree(size_t nNodes)
90  {
91  TreeId resId;
92  _status |= createTreeInternal(nNodes, resId);
93  services::throwIfPossible(_status);
94  return resId;
95  }
96 
105  NodeId addLeafNode(TreeId treeId, NodeId parentId, size_t position, double response)
106  {
107  NodeId resId;
108  _status |= addLeafNodeInternal(treeId, parentId, position, response, resId);
109  services::throwIfPossible(_status);
110  return resId;
111  }
112 
122  NodeId addSplitNode(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue)
123  {
124  NodeId resId;
125  _status |= addSplitNodeInternal(treeId, parentId, position, featureIndex, featureValue, resId);
126  services::throwIfPossible(_status);
127  return resId;
128  }
129 
134  ModelPtr getModel()
135  {
136  _status |= convertModelInternal();
137  services::throwIfPossible(_status);
138  return _model;
139  }
140 
145  services::Status getStatus()
146  {
147  return _status;
148  }
149 
150 protected:
151  ModelPtr _model;
152  services::Status _status;
153  services::Status initialize(size_t nFeatures, size_t nIterations);
154  services::Status createTreeInternal(size_t nNodes, TreeId& resId);
155  services::Status addLeafNodeInternal(TreeId treeId, NodeId parentId, size_t position, double response, NodeId& res);
156  services::Status addSplitNodeInternal(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue, NodeId& res);
157  services::Status convertModelInternal();
158 
159 };
161 } // namespace interface1
162 using interface1::ModelBuilder;
163 
164 } // namespace regression
165 } // namespace gbt
166 } // namespace algorithms
167 } // namespace daal
168 #endif
daal::algorithms::gbt::regression::interface1::ModelBuilder::addLeafNode
NodeId addLeafNode(TreeId treeId, NodeId parentId, size_t position, double response)
Definition: gbt_regression_model_builder.h:105
daal::algorithms::gbt::regression::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: gbt_regression_model_builder.h:145
daal
Definition: algorithm_base_common.h:31
daal::algorithms::gbt::regression::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nFeatures, size_t nIterations)
Definition: gbt_regression_model_builder.h:78
daal::algorithms::em_gmm::nIterations
Definition: em_gmm_types.h:97
daal::algorithms::gbt::regression::interface1::ModelBuilder::NodeId
size_t NodeId
Node identifier type is size_t
Definition: gbt_regression_model_builder.h:64
daal::algorithms::gbt::regression::interface1::ModelBuilder
Model Builder class for gradient boosted trees regression model.
Definition: gbt_regression_model_builder.h:58
daal::algorithms::gbt::regression::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: gbt_regression_model_builder.h:134
daal::algorithms::gbt::regression::interface1::ModelBuilder::TreeId
size_t TreeId
Tree identifier type is size_t
Definition: gbt_regression_model_builder.h:69
daal::algorithms::gbt::regression::interface1::ModelBuilder::createTree
TreeId createTree(size_t nNodes)
Definition: gbt_regression_model_builder.h:89
daal::algorithms::gbt::regression::interface1::ModelBuilder::addSplitNode
NodeId addSplitNode(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue)
Definition: gbt_regression_model_builder.h:122

For more complete information about compiler optimizations, see our Optimization Notice.