23 #ifndef __DECISION_FOREST_CLASSIFICATION_MODEL_BUILDER_H__
24 #define __DECISION_FOREST_CLASSIFICATION_MODEL_BUILDER_H__
26 #include "algorithms/decision_forest/decision_forest_classification_model.h"
32 namespace decision_forest
42 namespace classification
62 class DAAL_EXPORT ModelBuilder
68 typedef size_t NodeId;
73 typedef size_t TreeId;
75 static const NodeId noParent =
static_cast<size_t>(-1);
82 ModelBuilder(
size_t nClasses,
size_t nTrees)
84 _status |= initialize(nClasses, nTrees);
85 services::throwIfPossible(_status);
93 TreeId createTree(
size_t nNodes)
96 _status |= createTreeInternal(nNodes, resId);
97 services::throwIfPossible(_status);
109 NodeId addLeafNode(TreeId treeId, NodeId parentId,
size_t position,
size_t classLabel)
112 _status |= addLeafNodeInternal(treeId, parentId, position, classLabel, resId);
113 services::throwIfPossible(_status);
126 NodeId addSplitNode(TreeId treeId, NodeId parentId,
size_t position,
size_t featureIndex,
double featureValue)
129 _status |= addSplitNodeInternal(treeId, parentId, position, featureIndex, featureValue, resId);
130 services::throwIfPossible(_status);
134 void setNFeatures(
size_t nFeatures)
138 _status |= services::ErrorNullModel;
139 services::throwIfPossible(_status);
143 _model->setNFeatures(nFeatures);
153 services::throwIfPossible(_status);
161 services::Status getStatus()
168 services::Status _status;
169 services::Status initialize(
size_t nClasses,
size_t nTrees);
170 services::Status createTreeInternal(
size_t nNodes, TreeId& resId);
171 services::Status addLeafNodeInternal(TreeId treeId, NodeId parentId,
size_t position,
size_t classLabel, NodeId& res);
172 services::Status addSplitNodeInternal(TreeId treeId, NodeId parentId,
size_t position,
size_t featureIndex,
double featureValue, NodeId& res);
193 class DAAL_EXPORT ModelBuilder
199 typedef size_t NodeId;
204 typedef size_t TreeId;
206 static const NodeId noParent =
static_cast<size_t>(-1);
213 ModelBuilder(
const size_t nClasses,
const size_t nTrees) : _nClasses(nClasses)
215 _status |= initialize(nClasses, nTrees);
216 services::throwIfPossible(_status);
224 TreeId createTree(
const size_t nNodes)
227 _status |= createTreeInternal(nNodes, resId);
228 services::throwIfPossible(_status);
240 NodeId addLeafNode(
const TreeId treeId,
const NodeId parentId,
const size_t position,
const size_t classLabel)
243 _status |= addLeafNodeInternal(treeId, parentId, position, classLabel, resId);
244 services::throwIfPossible(_status);
256 NodeId addLeafNodeByProba(
const TreeId treeId,
const NodeId parentId,
const size_t position,
const double *
const proba)
259 _status |= addLeafNodeByProbaInternal(treeId, parentId, position, proba, resId);
260 services::throwIfPossible(_status);
273 NodeId addSplitNode(
const TreeId treeId,
const NodeId parentId,
const size_t position,
274 const size_t featureIndex,
const double featureValue)
277 _status |= addSplitNodeInternal(treeId, parentId, position, featureIndex, featureValue, resId);
278 services::throwIfPossible(_status);
282 void setNFeatures(
size_t nFeatures)
286 _status |= services::ErrorNullModel;
287 services::throwIfPossible(_status);
291 _model->setNFeatures(nFeatures);
301 services::throwIfPossible(_status);
309 services::Status getStatus()
const {
return _status; }
313 services::Status _status;
314 services::Status initialize(
const size_t nClasses,
const size_t nTrees);
315 services::Status createTreeInternal(
const size_t nNodes, TreeId & resId);
316 services::Status addLeafNodeInternal(
const TreeId treeId,
const NodeId parentId,
const size_t position,
317 const size_t classLabel, NodeId & res);
318 services::Status addLeafNodeByProbaInternal(
const TreeId treeId,
const NodeId parentId,
const size_t position,
319 const double *
const proba, NodeId & res);
320 services::Status addSplitNodeInternal(
const TreeId treeId,
const NodeId parentId,
const size_t position,
321 const size_t featureIndex,
const double featureValue, NodeId & res);
328 using interface2::ModelBuilder;
daal::algorithms::decision_forest::classification::interface1::ModelBuilder
Model Builder class for Decision Forest Classification Model algorithm
Definition: decision_forest_classification_model_builder.h:62
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::NodeId
size_t NodeId
Node identifier type is size_t
Definition: decision_forest_classification_model_builder.h:199
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::NodeId
size_t NodeId
Node identifier type is size_t
Definition: decision_forest_classification_model_builder.h:68
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::TreeId
size_t TreeId
Tree identifier type is size_t
Definition: decision_forest_classification_model_builder.h:204
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::addLeafNodeByProba
NodeId addLeafNodeByProba(const TreeId treeId, const NodeId parentId, const size_t position, const double *const proba)
Definition: decision_forest_classification_model_builder.h:256
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::addLeafNode
NodeId addLeafNode(TreeId treeId, NodeId parentId, size_t position, size_t classLabel)
Definition: decision_forest_classification_model_builder.h:109
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::TreeId
size_t TreeId
Tree identifier type is size_t
Definition: decision_forest_classification_model_builder.h:73
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::getModel
ModelPtr getModel()
Definition: decision_forest_classification_model_builder.h:299
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::ModelBuilder
ModelBuilder(const size_t nClasses, const size_t nTrees)
Definition: decision_forest_classification_model_builder.h:213
daal::algorithms::decision_forest::classification::interface2::ModelBuilder
Model Builder class for Decision Forest Classification Model algorithm
Definition: decision_forest_classification_model_builder.h:193
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: decision_forest_classification_model_builder.h:151
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::getStatus
services::Status getStatus() const
Definition: decision_forest_classification_model_builder.h:309
daal::services::ErrorNullModel
Definition: error_indexes.h:85
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::createTree
TreeId createTree(size_t nNodes)
Definition: decision_forest_classification_model_builder.h:93
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::createTree
TreeId createTree(const size_t nNodes)
Definition: decision_forest_classification_model_builder.h:224
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nClasses, size_t nTrees)
Definition: decision_forest_classification_model_builder.h:82
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::addSplitNode
NodeId addSplitNode(const TreeId treeId, const NodeId parentId, const size_t position, const size_t featureIndex, const double featureValue)
Definition: decision_forest_classification_model_builder.h:273
daal::algorithms::decision_forest::classification::interface2::ModelBuilder::addLeafNode
NodeId addLeafNode(const TreeId treeId, const NodeId parentId, const size_t position, const size_t classLabel)
Definition: decision_forest_classification_model_builder.h:240
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: decision_forest_classification_model_builder.h:161
daal::algorithms::decision_forest::classification::interface1::ModelBuilder::addSplitNode
NodeId addSplitNode(TreeId treeId, NodeId parentId, size_t position, size_t featureIndex, double featureValue)
Definition: decision_forest_classification_model_builder.h:126