C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

gbt_regression_model_builder.h
1 /* file: gbt_regression_model_builder.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Implementation of class defining gradient boosting trees regression model builder.
21 //--
22 */
23 #ifndef __GBT_REGRESSION_MODEL_BUILDER_H__
24 #define __GBT_REGRESSION_MODEL_BUILDER_H__
25 
26 #include "algorithms/gradient_boosted_trees/gbt_regression_model.h"
27 
28 namespace daal
29 {
30 namespace algorithms
31 {
32 namespace gbt
33 {
42 namespace regression
43 {
47 namespace interface1
48 {
60 class DAAL_EXPORT ModelBuilder
61 {
62 public:
66  typedef size_t NodeId;
67 
71  typedef size_t TreeId;
72 
73  static const NodeId noParent = static_cast<size_t>(-1);
80  ModelBuilder(size_t nFeatures, size_t nIterations)
81  {
82  _status |= initialize(nFeatures, nIterations);
83  services::throwIfPossible(_status);
84  }
85 
91  TreeId createTree(size_t nNodes)
92  {
93  TreeId resId;
94  _status |= createTreeInternal(nNodes, resId);
95  services::throwIfPossible(_status);
96  return resId;
97  }
98 
107  NodeId addLeafNode(TreeId treeId, NodeId parentId, size_t position, double response)
108  {
109  NodeId resId;
110  _status |= addLeafNodeInternal(treeId, parentId, position, response, resId);
111  services::throwIfPossible(_status);
112  return resId;
113  }
114 
124  NodeId addSplitNode(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue)
125  {
126  NodeId resId;
127  _status |= addSplitNodeInternal(treeId, parentId, position, featureIndex, featureValue, resId);
128  services::throwIfPossible(_status);
129  return resId;
130  }
131 
136  ModelPtr getModel()
137  {
138  _status |= convertModelInternal();
139  services::throwIfPossible(_status);
140  return _model;
141  }
142 
147  services::Status getStatus()
148  {
149  return _status;
150  }
151 
152 protected:
153  ModelPtr _model;
154  services::Status _status;
155  services::Status initialize(size_t nFeatures, size_t nIterations);
156  services::Status createTreeInternal(size_t nNodes, TreeId& resId);
157  services::Status addLeafNodeInternal(TreeId treeId, NodeId parentId, size_t position, double response, NodeId& res);
158  services::Status addSplitNodeInternal(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue, NodeId& res);
159  services::Status convertModelInternal();
160 
161 };
163 } // namespace interface1
164 using interface1::ModelBuilder;
165 
166 } // namespace regression
167 } // namespace gbt
168 } // namespace algorithms
169 } // namespace daal
170 #endif
daal::algorithms::gbt::regression::interface1::ModelBuilder::TreeId
size_t TreeId
Tree identifier type is size_t
Definition: gbt_regression_model_builder.h:71
daal::algorithms::gbt::regression::interface1::ModelBuilder::NodeId
size_t NodeId
Node identifier type is size_t
Definition: gbt_regression_model_builder.h:66
daal::algorithms::gbt::regression::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: gbt_regression_model_builder.h:136
daal::algorithms::gbt::regression::interface1::ModelBuilder::addLeafNode
NodeId addLeafNode(TreeId treeId, NodeId parentId, size_t position, double response)
Definition: gbt_regression_model_builder.h:107
daal::algorithms::gbt::regression::interface1::ModelBuilder
Model Builder class for gradient boosted trees regression model.
Definition: gbt_regression_model_builder.h:60
daal::algorithms::gbt::regression::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nFeatures, size_t nIterations)
Definition: gbt_regression_model_builder.h:80
daal::algorithms::gbt::regression::interface1::ModelBuilder::createTree
TreeId createTree(size_t nNodes)
Definition: gbt_regression_model_builder.h:91
daal::algorithms::gbt::regression::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: gbt_regression_model_builder.h:147
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:124
daal::algorithms::em_gmm::nIterations
Definition: em_gmm_types.h:99

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