113 #pragma warning(disable : 4996) 118 template<
typename FV>
131 _owningSupportVectors(false)
140 _owningSupportVectors(false)
162 _owningSupportVectors(false)
178 _owningSupportVectors =
false;
179 std::copy( orig._supportVectors, orig._supportVectors+orig._size,
181 std::copy( orig._alphas, orig._alphas + orig._size,
183 _trainingInfo = orig._trainingInfo;
193 void resize(
size_t nSupportVectors);
208 _supportVectors[i] = fv;
214 {
return _supportVectors[i]; }
217 {
return _supportVectors[i]; }
220 {
return _alphas[i]; }
225 {
return _supportVectors; }
228 {
return _supportVectors; }
243 if( _owningSupportVectors ==
true)
return;
245 for(
unsigned int i = 0; i < _size; ++i)
247 _supportVectors[i] =
new FV( *_supportVectors[i]);
249 _owningSupportVectors =
true;
256 _trainingInfo.
setValue( key, value);
261 return _trainingInfo.
asDouble( key);
266 std::ostringstream oss;
267 for( std::map<std::string, std::string>::const_iterator
268 p = _trainingInfo.
begin(); p != _trainingInfo.
end(); ++p)
270 oss << p->first <<
": " << p->second << std::endl;
275 template<
typename STDATA>
277 const std::string& prefix =
"")
280 for( std::map<std::string, std::string>::const_iterator
281 p = _trainingInfo.
begin(); p != _trainingInfo.
end(); ++p)
284 _trainingInfo.
getValue( p->first, val);
285 stData.setValue( prefix + p->first, val);
302 template<
typename STDATA>
304 const std::string& prefix =
"")
const;
322 template<
typename STDATA>
324 const std::string& prefix =
"");
339 template<
typename STDATA>
341 const std::string& prefix =
"")
const;
355 template<
typename STDATA>
357 const std::vector<FV*>& fvsByUID,
358 const std::string& prefix =
"");
375 const std::vector<char>& leaveOutFlagsByUID)
const 379 for(
unsigned int i = 0; i < _size; ++i)
381 unsigned int uid = _supportVectors[i]->uniqueID();
384 if( leaveOutFlagsByUID[uid] == 1)
return true;
392 FV** _supportVectors;
395 bool _owningSupportVectors;
std::map< std::string, std::string >::const_iterator begin() const
const access to internal map
#define CHECK_MEMBER_TEMPLATE(c)
double alpha(unsigned int i) const
Model & operator=(const Model &orig)
operator=
std::string trainingInfoPlainText()
#define SVM_ASSERT(condition)
void saveParametersWithUIDs(STDATA &stData, const std::string &prefix="") const
save the model data to string-string map.
void detachFromTrainingDataSet()
FV * supportVector(unsigned int i)
void saveTrainingInfo(STDATA &stData, const std::string &prefix="")
bool isModelAffectedByLeftOutVectors(const std::vector< char > &leaveOutFlagsByUID) const
check, if this model is affected by specified left out vectors, which means, that it needs to be retr...
Model(int nSupportVectors)
FV ** allSupportVectors()
void setSupportVector(unsigned int i, FV *fv, double alpha)
FV *const * allSupportVectors() const
void saveParameters(STDATA &stData, const std::string &prefix="") const
save the model data to given structured data.
void copySVCoefsToSupportVectors()
Model(const Model< FV > &orig)
Copy contructor.
std::map< std::string, std::string >::const_iterator end() const
void getValue(const std::string &key, T &value) const
get a value (with arbitrary type) from the internal map<string,string> specified by the given key...
void setValue(const std::string &key, const T &value)
setValue writes/adds a value (with arbitrary type) to the internal map<string,string>.
double getTrainingInfoValue(const std::string &key)
void loadParameters(STDATA &stData, const std::string &prefix="")
load the model data from given structured data.
void setTrainingInfoValue(const std::string &key, const T &value)
double asDouble(const std::string &key) const
const FV * supportVector(unsigned int i) const
void resize(size_t nSupportVectors)
void loadParametersWithUIDs(STDATA &stData, const std::vector< FV *> &fvsByUID, const std::string &prefix="")
(description)
The StDataASCII class is a container for "structured data", that is kept completly in memory...
const double * allAlphas() const