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

multi_class_classifier_model_builder.h
1 /* file: multi_class_classifier_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 #ifndef __MULTI_CLASS_CLASSIFIER_MODEL_BUILDER_H__
17 #define __MULTI_CLASS_CLASSIFIER_MODEL_BUILDER_H__
18 
19 #include "algorithms/multi_class_classifier/multi_class_classifier_model.h"
20 #include "algorithms/multi_class_classifier/multi_class_classifier_train_types.h"
21 namespace daal
22 {
23 namespace algorithms
24 {
34 namespace multi_class_classifier
35 {
36 
40 namespace interface1
41 {
53 template<training::Method method = training::oneAgainstOne>
54 class DAAL_EXPORT ModelBuilder
55 {
56 public:
62  ModelBuilder(size_t nFeatures, size_t nClasses): _nFeatures(nFeatures), _nClasses(nClasses)
63  {
64  _par = services::SharedPtr<ParameterBase>(new ParameterBase(_nClasses));
65  if(_par.get())
66  {
67  _modelPtr = Model::create(_nFeatures, _par.get(), &_s);
68  }
69  else
70  {
71  _s = services::Status(services::ErrorMemoryAllocationFailed);
72  }
73  }
74 
81  void setTwoClassClassifierModel(size_t negativeClassIdx, size_t positiveClassIdx, const classifier::ModelPtr& model)
82  {
83  if(negativeClassIdx >= positiveClassIdx)
84  {
85  _s = services::Status(services::ErrorIncorrectParameter);
86  }
87  services::throwIfPossible(_s);
88  size_t imodel = positiveClassIdx * (positiveClassIdx - 1)/2 + negativeClassIdx;
89 
90  _modelPtr->setTwoClassClassifierModel(imodel, model);
91  }
92 
97  ModelPtr getModel()
98  {
99  return _modelPtr;
100  }
101 
106  services::Status getStatus()
107  {
108  return _s;
109  }
110 
111 protected:
112  ModelPtr _modelPtr;
113  services::SharedPtr<ParameterBase> _par;
114  services::Status _s;
115  size_t _nFeatures;
116  size_t _nClasses;
117 };
118 
119 } // namespace interface1
120 
121 using interface1::ModelBuilder;
122 
123 } // namespace multi_class_classifier
125 } // namespace algorithms
126 } // namespace daal
127 #endif
daal::algorithms::multi_class_classifier::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: multi_class_classifier_model_builder.h:97
daal
Definition: algorithm_base_common.h:31
daal::services::ErrorIncorrectParameter
Definition: error_indexes.h:97
daal::algorithms::multi_class_classifier::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nFeatures, size_t nClasses)
Definition: multi_class_classifier_model_builder.h:62
daal::services::ErrorMemoryAllocationFailed
Definition: error_indexes.h:147
daal::algorithms::classifier::prediction::model
Definition: classifier_predict_types.h:66
daal::algorithms::multi_class_classifier::interface1::ModelBuilder
Builder for Model of the classifier trained by the multi_class_classifier::training::Batch algorithm...
Definition: multi_class_classifier_model_builder.h:54
daal::algorithms::multi_class_classifier::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: multi_class_classifier_model_builder.h:106
daal::algorithms::multi_class_classifier::interface1::ParameterBase
Parameters of the multi-class classifier algorithm.
Definition: multi_class_classifier_model.h:63
daal::algorithms::multi_class_classifier::interface1::Model::create
static services::SharedPtr< Model > create(size_t nFeatures, const ParameterBase *par, services::Status *stat=NULL)
daal::algorithms::multi_class_classifier::interface1::ModelBuilder::setTwoClassClassifierModel
void setTwoClassClassifierModel(size_t negativeClassIdx, size_t positiveClassIdx, const classifier::ModelPtr &model)
Definition: multi_class_classifier_model_builder.h:81

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