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

multi_class_classifier_model.h
1 /* file: multi_class_classifier_model.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 // Multiclass tcc parameter structure
21 //--
22 */
23 
24 #ifndef __MULTI_CLASS_CLASSIFIER_MODEL_H__
25 #define __MULTI_CLASS_CLASSIFIER_MODEL_H__
26 
27 #include "services/daal_defines.h"
28 #include "algorithms/model.h"
29 #include "algorithms/classifier/classifier_model.h"
30 #include "algorithms/classifier/classifier_predict.h"
31 #include "algorithms/classifier/classifier_training_batch.h"
32 
33 namespace daal
34 {
35 namespace algorithms
36 {
46 namespace multi_class_classifier
47 {
48 
52 namespace interface1
53 {
64 /* [interface1::ParameterBase source code] */
65 struct DAAL_EXPORT ParameterBase : public daal::algorithms::classifier::interface1::Parameter
66 {
67  ParameterBase(size_t nClasses): daal::algorithms::classifier::interface1::Parameter(nClasses), training(), prediction() {}
68  services::SharedPtr<algorithms::classifier::training::interface1::Batch> training;
69  services::SharedPtr<algorithms::classifier::prediction::interface1::Batch> prediction;
70 };
71 /* [interface1::ParameterBase source code] */
72 
79 /* [interface1::Parameter source code] */
80 struct DAAL_EXPORT Parameter : public ParameterBase
81 {
82  DAAL_DEPRECATED Parameter(size_t nClasses, size_t maxIterations = 100, double accuracyThreshold = 1.0e-12) :
83  ParameterBase(nClasses), maxIterations(maxIterations), accuracyThreshold(accuracyThreshold) {}
84 
85  size_t maxIterations;
86  double accuracyThreshold;
88  DAAL_DEPRECATED services::Status check() const DAAL_C11_OVERRIDE;
89 };
90 /* [interface1::Parameter source code] */
91 }
92 
96 namespace interface2
97 {
108 /* [ParameterBase source code] */
109 struct DAAL_EXPORT ParameterBase : public daal::algorithms::classifier::Parameter
110 {
111  ParameterBase(size_t nClasses): daal::algorithms::classifier::Parameter(nClasses), training(), prediction() {}
112  services::SharedPtr<algorithms::classifier::training::Batch> training;
113  services::SharedPtr<algorithms::classifier::prediction::Batch> prediction;
114 };
115 /* [ParameterBase source code] */
116 
123 /* [Parameter source code] */
124 struct DAAL_EXPORT Parameter : public ParameterBase
125 {
126  Parameter(size_t nClasses, size_t maxIterations = 100, double accuracyThreshold = 1.0e-12) :
127  ParameterBase(nClasses), maxIterations(maxIterations), accuracyThreshold(accuracyThreshold) {}
128 
129  size_t maxIterations;
130  double accuracyThreshold;
132  services::Status check() const DAAL_C11_OVERRIDE;
133 };
134 /* [Parameter source code] */
135 }
136 using interface2::ParameterBase;
137 using interface2::Parameter;
138 
139 namespace interface1
140 {
141 
146 class DAAL_EXPORT Model : public daal::algorithms::classifier::Model
147 {
148 public:
149  DECLARE_MODEL(Model, classifier::Model);
150 
157  Model(size_t nFeatures, const interface1::ParameterBase *par);
158 
165  Model(size_t nFeatures, const interface2::ParameterBase *par);
166 
171  Model();
172 
180  static services::SharedPtr<Model> create(size_t nFeatures, const interface1::ParameterBase *par, services::Status* stat = NULL);
181 
189  static services::SharedPtr<Model> create(size_t nFeatures, const interface2::ParameterBase *par, services::Status* stat = NULL);
190 
191  virtual ~Model();
192 
197  data_management::DataCollectionPtr getMultiClassClassifierModel()
198  {
199  return _models;
200  }
201 
207  DAAL_DEPRECATED classifier::ModelPtr *getTwoClassClassifierModels();
208 
214  void setTwoClassClassifierModel(size_t idx, const classifier::ModelPtr& model);
215 
221  classifier::ModelPtr getTwoClassClassifierModel(size_t idx) const;
222 
227  size_t getNumberOfTwoClassClassifierModels() const
228  {
229  return _models->size();
230  }
231 
236  size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE { return _nFeatures; }
237 
238 protected:
239  size_t _nFeatures;
240  data_management::DataCollectionPtr _models; /* Collection of two-class classifiers associated with the model */
241  classifier::ModelPtr *_modelsArray;
242 
243  DAAL_DEPRECATED Model(size_t nFeatures, const interface1::ParameterBase *par, services::Status &st); /* \DAAL_DEPRECATED */
244  Model(size_t nFeatures, const interface2::ParameterBase *par, services::Status &st);
245 
246  template<typename Archive, bool onDeserialize>
247  services::Status serialImpl(Archive *arch)
248  {
249  services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
250  if (!st)
251  return st;
252  arch->set(_nFeatures);
253  arch->setSharedPtrObj(_models);
254 
255  return st;
256  }
257 };
258 typedef services::SharedPtr<Model> ModelPtr;
259 } // namespace interface1
260 using interface1::Model;
261 using interface1::ModelPtr;
262 
263 } // namespace multi_class_classifier
265 } // namespace algorithms
266 } // namespace daal
267 #endif
daal::algorithms::multi_class_classifier::interface2::Parameter::maxIterations
size_t maxIterations
Definition: multi_class_classifier_model.h:129
daal::algorithms::multi_class_classifier::interface1::Model
Model of the classifier trained by the multi_class_classifier::training::Batch algorithm.
Definition: multi_class_classifier_model.h:146
daal::algorithms::multi_class_classifier::interface2::ParameterBase
Parameters of the multi-class classifier algorithm.
Definition: multi_class_classifier_model.h:109
daal::algorithms::neural_networks::prediction::prediction
Definition: neural_networks_prediction_result.h:55
daal::algorithms::multi_class_classifier::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: multi_class_classifier_model.h:86
daal::algorithms::multi_class_classifier::interface1::Parameter::maxIterations
size_t maxIterations
Definition: multi_class_classifier_model.h:85
daal::algorithms::multi_class_classifier::interface1::ParameterBase::prediction
services::SharedPtr< algorithms::classifier::prediction::interface1::Batch > prediction
Definition: multi_class_classifier_model.h:69
daal::algorithms::multi_class_classifier::interface2::Parameter::accuracyThreshold
double accuracyThreshold
Definition: multi_class_classifier_model.h:130
daal_defines.h
daal::algorithms::elastic_net::training::model
Definition: elastic_net_training_types.h:109
daal::algorithms::multi_class_classifier::interface1::ParameterBase::training
services::SharedPtr< algorithms::classifier::training::interface1::Batch > training
Definition: multi_class_classifier_model.h:68
daal::algorithms::multi_class_classifier::interface2::ParameterBase::training
services::SharedPtr< algorithms::classifier::training::Batch > training
Definition: multi_class_classifier_model.h:112
daal::algorithms::classifier::interface1::Parameter
Base class for the parameters of the classification algorithm.
Definition: classifier_model.h:69
daal::algorithms::multi_class_classifier::interface2::ParameterBase::prediction
services::SharedPtr< algorithms::classifier::prediction::Batch > prediction
Definition: multi_class_classifier_model.h:113
daal::algorithms::multi_class_classifier::interface1::Parameter
Optional multi-class classifier algorithm parameters that are used with the MultiClassClassifierWu pr...
Definition: multi_class_classifier_model.h:80
daal::algorithms::multi_class_classifier::interface1::Model::getMultiClassClassifierModel
data_management::DataCollectionPtr getMultiClassClassifierModel()
Definition: multi_class_classifier_model.h:197
daal::algorithms::multi_class_classifier::interface1::Model::getNumberOfTwoClassClassifierModels
size_t getNumberOfTwoClassClassifierModels() const
Definition: multi_class_classifier_model.h:227
daal::algorithms::multi_class_classifier::interface1::Model::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multi_class_classifier_model.h:236
daal::algorithms::multi_class_classifier::interface1::ParameterBase
Parameters of the multi-class classifier algorithm.
Definition: multi_class_classifier_model.h:65

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