KSquare Utilities
ModelParamOldSVM.h
Go to the documentation of this file.
1 #if !defined(_MODELPARAMOLDSVM_)
2 #define _MODELPARAMOLDSVM_
3 
4 #include "KKStr.h"
5 #include "RunLog.h"
6 
8 #include "FeatureNumList.h"
9 #include "FileDesc.h"
10 #include "MLClass.h"
11 #include "ModelParam.h"
12 #include "svm.h"
13 #include "SVMparam.h"
14 using namespace SVM233;
15 
16 
17 namespace KKMLL
18 {
19 
20  #ifndef _BINARYCLASSPARMS_
21  class BinaryClassParms;
25  #endif
26 
27 
28  /**
29  ************************************************************************************************
30  * this class encapsulates are the information necessary to build a SVMModel class. *
31  ************************************************************************************************
32  * @see ModelSVM
33  * @see SVM233
34  * @see BinaryClassParms
35  */
37  {
38  public:
40  typedef SVM233::svm_parameter svm_parameter;
41 
43 
44 
45  ModelParamOldSVM (const ModelParamOldSVM& _param);
46 
47  virtual
48  ~ModelParamOldSVM ();
49 
50  virtual
52 
54 
55  void AddBinaryClassParms (BinaryClassParmsPtr binaryClassParms);
56 
57  void AddBinaryClassParms (MLClassPtr class1,
58  MLClassPtr class2,
59  const svm_parameter& _param,
60  FeatureNumListConstPtr _selectedFeatures,
61  float _weight
62  );
63 
64  virtual float AvgMumOfFeatures (FileDescPtr fileDesc);
65 
66 
67  /** If no entry exists for class pair then NULL will be returned. */
68  BinaryClassParmsPtr GetBinaryClassParms (MLClassPtr class1,
69  MLClassPtr class2
70  ) const;
71 
72  /**
73  * If no entry exists for class pair a new one will be created using the global parameters from
74  *the underlying 'svmParameters' object.
75  */
76  BinaryClassParmsPtr GetParamtersToUseFor2ClassCombo (MLClassPtr class1,
77  MLClassPtr class2
78  );
79 
81  MLClassPtr class1,
82  MLClassPtr class2
83  ) const;
84 
85 
86  // Member access methods
87  const
88  BinaryClassParmsListPtr BinaryParmsList () const;
89  virtual float A_Param () const;
90  virtual double C_Param () const;
91 
92  virtual double C_Param (MLClassPtr class1,
93  MLClassPtr class2
94  ) const;
95 
96  virtual double Gamma () const;
97  virtual SVM_KernalType KernalType () const;
98  virtual SVM_MachineType MachineType () const;
99 
101  RunLog& log
102  ) const;
103 
104  virtual const svm_parameter& Param () const;
105  virtual float SamplingRate () const;
106  virtual FeatureNumListConstPtr SelectedFeatures () const;
107  virtual SVM_SelectionMethod SelectionMethod () const;
108  virtual SVMparamPtr SvmParameters () const;
109  virtual bool UseProbabilityToBreakTies () const;
110 
111 
112  // Member update methods
113  virtual void A_Param (float _A);
114  virtual void C_Param (double _CC);
115 
116  virtual void C_Param (MLClassPtr class1,
117  MLClassPtr class2,
118  double cParam
119  );
120 
121  virtual void EncodingMethod (SVM_EncodingMethod _encodingMethod);
122  virtual void EncodingMethod (EncodingMethodType _encodingMethod);
123  virtual void Gamma (double _gamma);
124  virtual void Gamma_Param (double _gamma);
125  virtual void KernalType (SVM_KernalType _kernalType);
126  virtual void MachineType (SVM_MachineType _machineType);
127  virtual void SamplingRate (float _samplingRate);
128  virtual void SelectedFeatures (const FeatureNumList& _selectedFeatures);
129  virtual void SelectionMethod (SVM_SelectionMethod _selectionMethod);
130 
131 
132  /**
133  *@brief converts Encoding variables from "SVM_EncodingMethod" to "ModelParam::EncodingMethodType"
134  */
136 
137 
138  void SetBinaryClassFields (MLClassPtr class1,
139  MLClassPtr class2,
140  const svm_parameter& _param,
141  FeatureNumListConstPtr _features,
142  float _weight
143  );
144 
145  void SetFeatureNums (MLClassPtr class1,
146  MLClassPtr class2,
147  FeatureNumListConstPtr _features,
148  float _weight = -1 /**< -1 Indicates use existing value. */
149  );
150 
151  void ParseCmdLine (KKStr _cmdLineStr,
152  bool& _validFormat,
153  RunLog& _log
154  );
155 
156  KKStr SvmParamToString (const svm_parameter& _param) const;
157 
158  KKStr ToCmdLineStr () const;
159 
160  virtual void ReadXML (XmlStream& s,
161  XmlTagConstPtr tag,
162  VolConstBool& cancelFlag,
163  RunLog& log
164  );
165 
166 
167  virtual void WriteXML (const KKStr& varName,
168  std::ostream& o
169  ) const;
170 
171  private:
172  virtual
173  void ParseCmdLineParameter (const KKStr& parameter,
174  const KKStr& value,
175  bool& parameterUsed,
176  RunLog& log
177  );
178 
179  SVMparamPtr svmParameters;
180  }; /* ModelParamOldSVM */
181 
183 
184 
187 
188 } /* namespace KKMLL */
189 
190 
191 
192 #endif
virtual const svm_parameter & Param() const
BinaryClassParmsPtr GetBinaryClassParms(MLClassPtr class1, MLClassPtr class2) const
const BinaryClassParmsListPtr BinaryParmsList() const
SVM_SelectionMethod
Definition: SVMparam.h:34
__int32 kkint32
Definition: KKBaseTypes.h:88
SVM_KernalType
Definition: SVMparam.h:54
virtual void KernalType(SVM_KernalType _kernalType)
virtual void Gamma_Param(double _gamma)
decision_function svm_train_one(const svm_problem *prob, const svm_parameter *param, double Cp, double Cn, std::set< kkint32 > &BSVIndex)
Definition: svm.cpp:3154
Keeps track of selected features.
ModelParam derived classes will implement their "XmlElement" helper class via this template...
Definition: ModelParam.h:260
SVM_MachineType
Definition: SVMparam.h:26
virtual void Gamma(double _gamma)
virtual void ReadXML(XmlStream &s, XmlTagConstPtr tag, VolConstBool &cancelFlag, RunLog &log)
virtual void EncodingMethod(SVM_EncodingMethod _encodingMethod)
virtual void C_Param(double _CC)
SVMparam * SVMparamPtr
Definition: SVMparam.h:286
KKStr SvmParamToString(const svm_parameter &_param) const
Convert a svm_parameter struct to a cmdline str.
SVM_EncodingMethod
Definition: SVMparam.h:46
virtual bool UseProbabilityToBreakTies() const
virtual SVM_MachineType MachineType() const
virtual void C_Param(MLClassPtr class1, MLClassPtr class2, double cParam)
virtual void A_Param(float _A)
void SetBinaryClassFields(MLClassPtr class1, MLClassPtr class2, const svm_parameter &_param, FeatureNumListConstPtr _features, float _weight)
virtual SVM_KernalType KernalType() const
virtual kkint32 NumOfFeaturesAfterEncoding(FileDescPtr fileDesc, RunLog &log) const
FeatureNumListConstPtr GetFeatureNums(FileDescPtr fileDesc, MLClassPtr class1, MLClassPtr class2) const
virtual ModelParamTypes ModelParamType() const
ModelParamOldSVM * ModelParamOldSVMPtr
void AddBinaryClassParms(MLClassPtr class1, MLClassPtr class2, const svm_parameter &_param, FeatureNumListConstPtr _selectedFeatures, float _weight)
Add a Binary parameters using svm_parametr cmd line str. Typically used by TrainingConfiguration.
void SetFeatureNums(MLClassPtr class1, MLClassPtr class2, FeatureNumListConstPtr _features, float _weight=-1)
virtual SVM_SelectionMethod SelectionMethod() const
XmlTag const * XmlTagConstPtr
Definition: KKStr.h:45
Manages the reading and writing of objects in a simple XML format. For a class to be supported by Xml...
Definition: XmlStream.h:46
ModelParamOldSVM(const ModelParamOldSVM &_param)
static KKStr Concat(const std::vector< std::string > &values)
Concatenates the list of &#39;std::string&#39; strings.
Definition: KKStr.cpp:1082
FileDesc * FileDescPtr
virtual void SamplingRate(float _samplingRate)
ModelParamOldSVM * ModelParamOldSVMPtr
Definition: ModelOldSVM.h:24
KKStr ToCmdLineStr() const
Convert all parameters to a command line string.
virtual void SelectionMethod(SVM_SelectionMethod _selectionMethod)
virtual ModelParamOldSVMPtr Duplicate() const
XmlElementModelParamOldSVM * XmlElementModelParamOldSVMPtr
virtual double Gamma() const
virtual void MachineType(SVM_MachineType _machineType)
virtual void EncodingMethod(EncodingMethodType _encodingMethod)
virtual void SelectedFeatures(const FeatureNumList &_selectedFeatures)
FeatureNumListConst * FeatureNumListConstPtr
virtual float A_Param() const
Used for logging messages.
Definition: RunLog.h:49
void EncodeProblem(const struct svm_paramater &param, struct svm_problem &prob_in, struct svm_problem &prob_out)
virtual void WriteXML(const KKStr &varName, std::ostream &o) const
virtual double C_Param(MLClassPtr class1, MLClassPtr class2) const
XmlElementModelParamTemplate< ModelParamOldSVM > XmlElementModelParamOldSVM
EncodingMethodType SVM_EncodingMethodToModelParamEncodingMethodType(SVM_EncodingMethod _encodingMethod)
converts Encoding variables from "SVM_EncodingMethod" to "ModelParam::EncodingMethodType" ...
void ParseCmdLine(KKStr _cmdLineStr, bool &_validFormat, RunLog &_log)
virtual float SamplingRate() const
virtual FeatureNumListConstPtr SelectedFeatures() const
Abstract Base class for Machine Learning parameters.
Definition: ModelParam.h:35
virtual double C_Param() const
void AddBinaryClassParms(BinaryClassParmsPtr binaryClassParms)
virtual SVMparamPtr SvmParameters() const
BinaryClassParmsPtr GetParamtersToUseFor2ClassCombo(MLClassPtr class1, MLClassPtr class2)
volatile const bool VolConstBool
Definition: KKBaseTypes.h:163
virtual float AvgMumOfFeatures(FileDescPtr fileDesc)