22 #ifndef __MULTI_CLASS_CLASSIFIER_MODEL_H__
23 #define __MULTI_CLASS_CLASSIFIER_MODEL_H__
25 #include "services/daal_defines.h"
26 #include "algorithms/model.h"
27 #include "algorithms/classifier/classifier_model.h"
28 #include "algorithms/classifier/classifier_predict.h"
29 #include "algorithms/classifier/classifier_training_batch.h"
44 namespace multi_class_classifier
63 struct DAAL_EXPORT ParameterBase :
public daal::algorithms::classifier::Parameter
65 ParameterBase(
size_t nClasses): daal::algorithms::classifier::Parameter(nClasses), training(), prediction() {}
66 services::SharedPtr<algorithms::classifier::training::Batch> training;
67 services::SharedPtr<algorithms::classifier::prediction::Batch> prediction;
78 struct DAAL_EXPORT Parameter :
public ParameterBase
80 Parameter(
size_t nClasses,
size_t maxIterations = 100,
double accuracyThreshold = 1.0e-12) :
81 ParameterBase(nClasses), maxIterations(maxIterations), accuracyThreshold(accuracyThreshold) {}
84 double accuracyThreshold;
86 services::Status check() const DAAL_C11_OVERRIDE;
94 class DAAL_EXPORT Model : public daal::algorithms::classifier::Model
97 DECLARE_MODEL(Model, classifier::Model);
105 Model(
size_t nFeatures,
const ParameterBase *par);
120 static services::SharedPtr<Model> create(
size_t nFeatures,
const ParameterBase *par, services::Status* stat = NULL);
128 data_management::DataCollectionPtr getMultiClassClassifierModel()
138 DAAL_DEPRECATED classifier::ModelPtr *getTwoClassClassifierModels();
145 void setTwoClassClassifierModel(
size_t idx,
const classifier::ModelPtr& model);
152 classifier::ModelPtr getTwoClassClassifierModel(
size_t idx)
const;
158 size_t getNumberOfTwoClassClassifierModels()
const
160 return _models->size();
167 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return _nFeatures; }
171 data_management::DataCollectionPtr _models;
172 classifier::ModelPtr *_modelsArray;
174 Model(
size_t nFeatures,
const ParameterBase *par, services::Status &st);
176 template<
typename Archive,
bool onDeserialize>
177 services::Status serialImpl(Archive *arch)
179 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
182 arch->set(_nFeatures);
183 arch->setSharedPtrObj(_models);
188 typedef services::SharedPtr<Model> ModelPtr;
190 using interface1::ParameterBase;
191 using interface1::Parameter;
192 using interface1::Model;
193 using interface1::ModelPtr;
daal
Definition: algorithm_base_common.h:31
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:94
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:78
daal::algorithms::classifier::prediction::model
Definition: classifier_predict_types.h:66
daal::algorithms::multi_class_classifier::interface1::Parameter::maxIterations
size_t maxIterations
Definition: multi_class_classifier_model.h:83
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::ParameterBase::prediction
services::SharedPtr< algorithms::classifier::prediction::Batch > prediction
Definition: multi_class_classifier_model.h:67
daal::algorithms::multi_class_classifier::interface1::Model::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multi_class_classifier_model.h:167
daal::algorithms::multi_class_classifier::interface1::ParameterBase::training
services::SharedPtr< algorithms::classifier::training::Batch > training
Definition: multi_class_classifier_model.h:66
daal::algorithms::classifier::prediction::prediction
Definition: classifier_predict_types.h:76
daal::algorithms::multi_class_classifier::interface1::Model::getNumberOfTwoClassClassifierModels
size_t getNumberOfTwoClassClassifierModels() const
Definition: multi_class_classifier_model.h:158
daal::algorithms::multi_class_classifier::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: multi_class_classifier_model.h:84
daal::algorithms::multi_class_classifier::interface1::Model::getMultiClassClassifierModel
data_management::DataCollectionPtr getMultiClassClassifierModel()
Definition: multi_class_classifier_model.h:128