92 #ifndef BASICSVMADAPTERTEMPL_HH 93 #define BASICSVMADAPTERTEMPL_HH 106 template<
typename FV,
119 _svm.setProgressReporter( pr);
126 _svm.loadParameters( stData);
132 _svm.loadParameters( stData);
138 _svm.loadParameters( stData);
145 _model.loadParameters( stData);
151 _svm.saveParameters( stData);
156 _svm.saveParameters( stData);
161 _svm.twoClassSVM().kernel().saveParameters( stData);
168 _model.saveParameters( stData);
185 _svm.updateKernelCache(
193 _svm.updateKernelCache(
200 std::vector<FV>::iterator FV_begin,
202 std::vector<FV>::iterator& FV_end)
204 typename std::vector<FV*>::const_iterator svbegin=
205 _model.collectedSupportVectors().begin();
206 typename std::vector<FV*>::const_iterator svend=
207 _model.collectedSupportVectors().end();
208 _svm.twoClassSVM().kernel().updateCache(FV_begin,FV_end,
218 _svm.train( trainData, _model);
225 _svm.train( problem, _model);
231 _svm.twoClassSVM().kernel().clearCache();
239 return _svm.classify( testObject, _model, _detailedResults);
243 return _svm.classify( testObject, _model);
262 _svm.saveClassificationDetails( _model, _detailedResults, stData);
267 const std::vector<FV>& featureVectors)
270 size_t nfv = featureVectors.size();
272 typename std::vector<FV>::const_iterator it =
273 featureVectors.begin();
274 for (
size_t i = 0; i < nfv; i++, it++)
276 typename std::vector<FV>::const_iterator jt =
277 featureVectors.begin();
278 for (
size_t j = 0; j < nfv; j++, jt++)
279 kmatrix[i][j] = static_cast<float>(
280 _svm.twoClassSVM().kernel().k_function(*it,*jt));
286 return _model.nClasses();
291 return _model.classIndexToLabel( classIndex);
296 return _model.getSupportVectors().size();
302 return _model.getSupportVectors().operator[](i);
307 std::vector<const typename svt::Model<FV>* > models;
308 for (
unsigned int i = 0; i<_model.nTwoClassModels();i++)
310 models.push_back(&(_model.twoClassModel(i)));
317 std::vector<typename svt::Model<FV>* > models;
318 for (
unsigned int i = 0; i<_model.nTwoClassModels();i++)
320 models.push_back(&(_model.twoClassModel(i)));
336 template<
typename STDATA2>
339 if( detailLevel == 2)
341 _model.saveTCTrainingInfos( stData);
343 _model.saveTrainingInfoStatistics( stData);
348 typename MCSVMTYPE::template Traits<FV>::ModelType _model;
349 typename MCSVMTYPE::DetailedResultType _detailedResults;
std::vector< typename svt::Model< FV > *> getTwoClassModels()
The GroupedTrainingData class is a container for feature vectors.
virtual void computeTrainKernelMatrix(float **kmatrix, const std::vector< FV > &featureVectors)
Evaluate kernel matrix of the svm.
void optimizeModel(MODEL &model)
virtual void saveTrainingInfos(STDATA &stData, int detailLevel=1)
save additional trainnig infos to given structured data
virtual void saveParameters(StDataASCII &stData) const
same as saveParameters(), but with fixed StDataASCII class independent from given STDATA template par...
virtual void updateKernelCache(const GroupedTrainingData< FV > &trainData)
call updateCache() of selected kernel, e.g., for Kernel_MATRIX this will setup the internal cache mat...
virtual void saveOnlyKernelParameters(StDataASCII &stData) const
save only Kernel Parameters (this is used for user information and to detect in grid search...
virtual void loadParameters(StDataCmdLine &stData)
Same as loadParameters, but for Parameters from command line.
std::vector< FV * >::const_iterator FV_begin() const
virtual void saveModel(STDATA &stData) const
save resulting model from training process into given map
virtual void saveParameters(STDATA &stData) const
store all parameters of the SVM to given map
virtual void updateKernelCache(const SVM_Problem< FV > &problem)
same as previous updateKernelCache() method, just for feature vectors that are stored within an SVM_P...
virtual void clearKernelCache()
call clearCache() method of selected kernel, e.g., for Kernel_MATRIX this will clear the internal cac...
void optimizeLinearModel()
optimize model for faster classification
virtual void saveClassificationDetailsASCII(StDataASCII &stData) const
classify the given Feature Vector.
virtual int nClasses() const
get number of Classes (loadModel() or train() must have been called before)
virtual void setProgressReporter(ProgressReporter *pr)
set progress reporter object.
virtual void updateTestKernelCache(typename std::vector< FV >::iterator FV_begin, const typename std::vector< FV >::iterator &FV_end)
Load Test Kernel Cache.
virtual void saveTrainingInfos(StDataASCII &stData, int detailLevel=1)
same as saveTrainingInfos(), but with fixed StDataASCII class independent from given STDATA template ...
FV * getSupportVector(int i) const
returns ith SV in model
virtual void train(const GroupedTrainingData< FV > &trainData)
train SVM with given training data.
virtual void loadParameters(StDataASCII &stData)
double classIndexToLabel(unsigned int classIndex) const
map classIndex to label (loadModel() or train() must have been called before)
virtual void loadModel(STDATA &stData)
load model data from stData into SVM's.
virtual void loadParameters(STDATA &stData)
Read all parameters (e.g.
size_t nSupportVectors() const
returns number of SV in model
virtual void train(const SVM_Problem< FV > &problem)
train SVM with given Feature Vectors.
std::vector< const typename svt::Model< FV > *> getTwoClassModels() const
returns vector containing pointers to all TwoClassModels
std::vector< FV * >::const_iterator FV_end() const
The StDataASCII class is a container for "structured data", that is kept completly in memory...
virtual double classify(const FV &testObject)
classify the given Feature Vector.
void saveTrainingInfosTempl(STDATA2 &stData, int detailLevel)