19 using namespace KKMLL;
36 for (MLClassList::const_iterator idx = classes.begin (); idx != classes.end (); idx++)
38 insert (pair<kkint16, MLClassPtr> (x, *idx));
39 classLookUp.insert (pair<MLClassPtr, kkint16> (*idx, x));
48 kkint32 memoryConsumedEstimated =
sizeof (ClassAssignments)
49 + (classLookUp.size () * (
sizeof (MLClassPtr) +
sizeof (kkint16)));
50 return memoryConsumedEstimated;
61 ClassLookUpIterator idx;
62 idx = classLookUp.find (mlClass);
63 if (idx != classLookUp.end ())
65 log.Level (-1) << endl << endl
66 <<
"ClassAssignments::AddMLClass ***ERROR*** Duplicate Class Being Added[" << mlClass->Name () <<
"]." << endl
67 <<
" Num Found [" << idx->second <<
"]" << endl
68 <<
" New Num Being Added [" << num << endl
73 insert (pair<kkint16, MLClassPtr> (num, mlClass));
74 classLookUp.insert (pair<MLClassPtr, kkint16> (mlClass, num));
83 multimap<kkint16, MLClassPtr>::const_iterator p;
96 ClassAssignments::const_iterator idx;
99 for (idx = begin (); idx != end (); idx++)
101 if (idx->first == num)
102 results.PushOnBack (idx->second);
115 ClassAssignments::const_iterator idx;
117 for (idx = begin (); idx != end (); idx++)
119 nums.push_back (idx->first);
122 sort (nums.begin (), nums.end ());
127 VectorShort::const_iterator idx2;
128 for (idx2 = nums.begin (); idx2 != nums.end (); idx2++)
130 if (*idx2 != lastNum)
133 results.push_back (lastNum);
146 if ((idx < 0) || (idx >= (size_t)size ()))
150 <<
"ClassAssignments::GetMLClassByIndex *** ERROR ***" << endl
151 <<
" idx[" << idx <<
"] is out of range." << endl
156 iterator i = begin ();
157 for (size_t x = 0; x < idx; x++)
169 ClassLookUp::const_iterator idx;
170 idx = classLookUp.find (mlClass);
171 if (idx == classLookUp.end ())
184 ofstream outFile (fileName.Str ());
186 for (iterator idx = begin (); idx != end (); idx++)
188 outFile << idx->second->Name () <<
"\t" << idx->first << endl;
200 KKStr result ((kkint32)(size () * 20));
202 result << kkint32 (size ());
204 ClassAssignments::const_iterator idx;
205 for (idx = begin (); idx != end (); idx++)
207 result <<
"\t" << idx->first <<
"\t" << idx->second->Name ();
226 erase (begin (), end ());
__int16 kkint16
16 bit signed integer.
VectorShort GetUniqueListOfAssignments() const
void Save(const KKStr &fileName, bool &successful)
MLClassPtr GetMLClass(kkint16 num) const
KKStr ExtractToken(const char *delStr="\n\t\r ")
kkint16 GetNumForClass(MLClassPtr mlClass) const
Represents a "Class" in the Machine Learning Sense.
MLClassList GetMLClasses(kkint16 num) const
KKStr(const KKStr &str)
Copy Constructor.
kkint32 MemoryConsumedEstimated() const
Binds MLClass objects to the appropriate number that the Learning Algorithm expects.
static KKStr Concat(const std::vector< std::string > &values)
Concatenates the list of 'std::string' strings.
void AddMLClass(MLClassPtr mlClass, kkint16 num, RunLog &log)
MLClassPtr GetMLClassByIndex(size_t idx)
kkint32 ExtractTokenInt(const char *delStr)
static MLClassPtr CreateNewMLClass(const KKStr &_name, kkint32 _classId=-1)
Static method used to create a new instance of a MLClass object.
void ParseToString(const KKStr &_toString, RunLog &_log)
Loads class assignments from string that was originally generated by ToString.
Used for logging messages.
void EncodeProblem(const struct svm_paramater ¶m, struct svm_problem &prob_in, struct svm_problem &prob_out)
ClassAssignments(const MLClassList &classes)
Creates assignment for all classes in 'classes.
std::vector< short > VectorShort
Maintains a list of MLClass instances.