25 #ifndef __SVM_MODEL_BUILDER_H__
26 #define __SVM_MODEL_BUILDER_H__
28 #include "algorithms/svm/svm_model.h"
29 #include "algorithms/multi_class_classifier/multi_class_classifier_model.h"
62 template<
typename modelFPType = DAAL_ALGORITHM_FP_TYPE>
63 class DAAL_EXPORT ModelBuilder
73 ModelBuilder(
size_t nFeatures,
size_t nSupportVectors): _nFeatures(nFeatures), _nSupportVectors(nSupportVectors), _modelPtr(Model::create<modelFPType>(nFeatures))
75 _supportV = _modelPtr->getSupportVectors();
76 _supportI = _modelPtr->getSupportIndices();
77 _supportCC = _modelPtr->getClassificationCoefficients();
78 _supportV->resize(nSupportVectors);
79 _supportI->resize(nSupportVectors);
80 _supportCC->resize(nSupportVectors);
89 template<
typename RandomIterator>
90 void setSupportVectors(RandomIterator first, RandomIterator last)
92 if((last - first) != _nSupportVectors*_nFeatures)
94 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
96 commonSetter<RandomIterator>(_supportV, first, last);
105 template<
typename RandomIterator>
106 void setSupportIndices(RandomIterator first, RandomIterator last)
108 if((last - first) != _nSupportVectors)
110 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
112 commonSetter<RandomIterator>(_supportI, first, last);
121 template<
typename RandomIterator>
122 void setClassificationCoefficients(RandomIterator first, RandomIterator last)
124 if((last - first) != _nSupportVectors)
126 services::throwIfPossible(services::Status(services::ErrorIncorrectParameter));
128 commonSetter<RandomIterator>(_supportCC, first, last);
135 void setBias(modelFPType bias)
137 _modelPtr->setBias(bias);
153 services::Status getStatus()
161 size_t _nSupportVectors;
162 data_management::NumericTablePtr _supportV;
163 data_management::NumericTablePtr _supportCC;
164 data_management::NumericTablePtr _supportI;
166 template<
typename RandomIterator>
167 services::Status commonSetter(data_management::NumericTablePtr& p, RandomIterator first, RandomIterator last)
171 data_management::BlockDescriptor<modelFPType> pBlock;
172 p->getBlockOfRows(0, _nSupportVectors, data_management::readWrite, pBlock);
173 modelFPType* sp = pBlock.getBlockPtr();
180 p->releaseBlockOfRows(pBlock);
187 using interface1::ModelBuilder;
daal::algorithms::svm::interface1::ModelBuilder::setSupportVectors
void setSupportVectors(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:90
daal::algorithms::svm::interface1::ModelBuilder
Model Builder class for class SVM Model.
Definition: svm_model_builder.h:63
daal::algorithms::svm::interface1::ModelBuilder::ModelBuilder
ModelBuilder(size_t nFeatures, size_t nSupportVectors)
Definition: svm_model_builder.h:73
daal::algorithms::svm::interface1::ModelBuilder::setSupportIndices
void setSupportIndices(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:106
daal::algorithms::svm::interface1::ModelBuilder::setBias
void setBias(modelFPType bias)
Definition: svm_model_builder.h:135
daal::algorithms::svm::interface1::ModelBuilder::setClassificationCoefficients
void setClassificationCoefficients(RandomIterator first, RandomIterator last)
Definition: svm_model_builder.h:122
daal::services::ErrorIncorrectParameter
Definition: error_indexes.h:99
daal::algorithms::svm::interface1::ModelBuilder::getModel
ModelPtr getModel()
Definition: svm_model_builder.h:144
daal::algorithms::svm::interface1::Model
Model of the classifier trained by the svm::training::Batch algorithm
Definition: svm_model.h:151
daal::algorithms::svm::interface1::ModelBuilder::getStatus
services::Status getStatus()
Definition: svm_model_builder.h:153