23 #ifndef __SVM_MODEL_BUILDER_H__
24 #define __SVM_MODEL_BUILDER_H__
26 #include "algorithms/svm/svm_model.h"
27 #include "algorithms/multi_class_classifier/multi_class_classifier_model.h"
60 template<
typename modelFPType = DAAL_ALGORITHM_FP_TYPE>
61 class DAAL_EXPORT ModelBuilder
71 ModelBuilder(
size_t nFeatures,
size_t nSupportVectors): _nFeatures(nFeatures), _nSupportVectors(nSupportVectors), _modelPtr(Model::create<modelFPType>(nFeatures))
73 _supportV = _modelPtr->getSupportVectors();
74 _supportI = _modelPtr->getSupportIndices();
75 _supportCC = _modelPtr->getClassificationCoefficients();
76 _supportV->resize(nSupportVectors);
77 _supportI->resize(nSupportVectors);
78 _supportCC->resize(nSupportVectors);
87 template<
typename RandomIterator>
88 void setSupportVectors(RandomIterator first, RandomIterator last)
90 if((last - first) != _nSupportVectors*_nFeatures)
92 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
94 commonSetter<RandomIterator>(_supportV, first, last);
103 template<
typename RandomIterator>
104 void setSupportIndices(RandomIterator first, RandomIterator last)
106 if((last - first) != _nSupportVectors)
108 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
110 commonSetter<RandomIterator>(_supportI, first, last);
119 template<
typename RandomIterator>
120 void setClassificationCoefficients(RandomIterator first, RandomIterator last)
122 if((last - first) != _nSupportVectors)
124 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
126 commonSetter<RandomIterator>(_supportCC, first, last);
133 void setBias(modelFPType bias)
135 _modelPtr->setBias(bias);
151 services::Status getStatus()
159 size_t _nSupportVectors;
160 data_management::NumericTablePtr _supportV;
161 data_management::NumericTablePtr _supportCC;
162 data_management::NumericTablePtr _supportI;
164 template<
typename RandomIterator>
165 services::Status commonSetter(data_management::NumericTablePtr& p, RandomIterator first, RandomIterator last)
169 data_management::BlockDescriptor<modelFPType> pBlock;
170 p->getBlockOfRows(0, _nSupportVectors, data_management::readWrite, pBlock);
171 modelFPType* sp = pBlock.getBlockPtr();
178 p->releaseBlockOfRows(pBlock);
185 using interface1::ModelBuilder;
daal::algorithms::svm::interface1::ModelBuilder::setClassificationCoefficients
void setClassificationCoefficients(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:120
daal::algorithms::svm::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: svm_model_builder.h:151
daal
Definition: algorithm_base_common.h:31
daal::algorithms::svm::interface1::Model
Model of the classifier trained by the svm::training::Batch algorithm
Definition: svm_model.h:101
daal::services::ErrorIncorrectParameter
Definition: error_indexes.h:97
daal::algorithms::svm::interface1::ModelBuilder::setBias
void setBias(modelFPType bias)
Definition: svm_model_builder.h:133
daal::algorithms::svm::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: svm_model_builder.h:142
daal::algorithms::svm::interface1::ModelBuilder
Model Builder class for class SVM Model.
Definition: svm_model_builder.h:61
daal::algorithms::svm::interface1::ModelBuilder::setSupportVectors
void setSupportVectors(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:88
daal::algorithms::svm::interface1::ModelBuilder::setSupportIndices
void setSupportIndices(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:104
daal::algorithms::svm::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nFeatures, size_t nSupportVectors)
Definition: svm_model_builder.h:71