KSquare Utilities
NormalizationParms.h
Go to the documentation of this file.
1 #if !defined(_NORMALIZATIONPARMS_)
2 #define _NORMALIZATIONPARMS_
3 
4 #include "Attribute.h"
5 #include "KKBaseTypes.h"
6 #include "FeatureNumList.h"
7 #include "KKStr.h"
8 
9 
10 
11 namespace KKMLL
12 {
13 
14  #ifndef _RUNLOG_
15  class RunLog;
16  typedef RunLog* RunLogPtr;
17  #endif
18 
19 
21  class FeatureVector;
23  #endif
24 
25 
27  class FeatureVectorList;
29  #endif
30 
31 
32  #ifndef _FILEDESC_
33  class FileDesc;
34  typedef FileDesc* FileDescPtr;
35  #endif
36 
37 
38  #ifndef _TrainingConfiguration2_Defined_
41  #endif
42 
43  #ifndef _MODELPARAM_
44  class ModelParam;
45  typedef ModelParam* ModelParamPtr;
46  #endif
47 
48 
49 
50  /**
51  *@brief Normalization Parameters; calculation and implementation.
52  *@details Normalization parameters will be calculated for all features but
53  * when individual examples are normalized, only the ones specified by
54  * _featuresToNormalize' will be normalized.
55  */
57  {
58  public:
60 
62 
63  NormalizationParms (bool _normalizeNominalFeatures,
64  FeatureVectorList& _examples,
65  RunLog& _log
66  );
67 
68  NormalizationParms (const ModelParam& _param,
69  FeatureVectorList& _examples,
70  RunLog& _log
71  );
72 
74  FeatureVectorList& _examples,
75  RunLog& _log
76  );
77 
79 
81 
82  FileDescPtr FileDesc () const {return fileDesc;}
83 
85  RunLog& log
86  );
87 
88  void NormalizeAExample (FeatureVectorPtr example);
89 
90  bool NormalizeNominalFeatures () const {return normalizeNominalFeatures;}
91 
93 
94  kkint32 NumOfFeatures () const {return numOfFeatures;}
95 
96  float NumOfExamples () const {return numOfExamples;}
97 
98  void ReadXML (XmlStream& s,
99  XmlTagPtr tag,
100  VolConstBool& cancelFlag,
101  RunLog& log
102  );
103 
104 
105  void WriteToFile (const KKStr& _fileName, bool& _successfull, RunLog& _log) const;
106 
107 
108  //void Write (std::ostream& o);
109 
110 
111  void WriteXML (const KKStr& varName,
112  std::ostream& o
113  ) const;
114 
115 
116  double Mean (kkint32 i,
117  RunLog& log
118  );
119 
120 
121  double Sigma (kkint32 i,
122  RunLog& log
123  );
124 
125 
126  const double* Mean () const {return mean;}
127  const double* Sigma () const {return sigma;}
128 
129  static
130  NormalizationParmsPtr ReadFromFile (const KKStr& fileName, RunLog& log);
131 
132  private:
133  void ConstructNormalizeFeatureVector ();
134  void DeriveNormalizationParameters (FeatureVectorList& _examples);
135 
136  AttributeTypeVector attriuteTypes;
137  FileDescPtr fileDesc;
138  mutable KKStr fileName;
139  double* mean;
140  bool* normalizeFeature;
141  bool normalizeNominalFeatures;
142  kkint32 numOfFeatures;
143  float numOfExamples;
144  double* sigma;
145  }; /* NormalizationParms */
146 
147 
149 
150 
151  #define _NormalizationParms_Defined_
152 
153 
154 
157 
158 
159 } /* KKMLL */
160 
161 
162 #endif
kkint32 MemoryConsumedEstimated() const
const double * Mean() const
XmlTag * XmlTagPtr
Definition: Atom.h:31
void NormalizeExamples(FeatureVectorListPtr examples, RunLog &log)
NormalizationParms * NormalizationParmsPtr
__int32 kkint32
Definition: KKBaseTypes.h:88
FeatureVector * FeatureVectorPtr
Definition: Model.h:44
void ReadXML(XmlStream &s, XmlTagPtr tag, VolConstBool &cancelFlag, RunLog &log)
#define _FeatureVector_Defined_
void NormalizeAExample(FeatureVectorPtr example)
NormalizationParms * NormalizationParmsPtr
Definition: Model.h:68
FileDescPtr FileDesc() const
double Mean(kkint32 i, RunLog &log)
NormalizationParms(bool _normalizeNominalFeatures, FeatureVectorList &_examples, RunLog &_log)
const double * Sigma() const
Container class for FeatureVector derived objects.
kkint32 NumOfFeatures() const
FeatureVectorPtr ToNormalized(FeatureVectorPtr example) const
NormalizationParms(const ModelParam &_param, FeatureVectorList &_examples, RunLog &_log)
Manages the reading and writing of objects in a simple XML format. For a class to be supported by Xml...
Definition: XmlStream.h:46
void WriteXML(const KKStr &varName, std::ostream &o) const
bool NormalizeNominalFeatures() const
XmlElementTemplate< NormalizationParms > XmlElementNormalizationParms
#define _FeatureVectorList_Defined_
static KKStr Concat(const std::vector< std::string > &values)
Concatenates the list of &#39;std::string&#39; strings.
Definition: KKStr.cpp:1082
static NormalizationParmsPtr ReadFromFile(const KKStr &fileName, RunLog &log)
FileDesc * FileDescPtr
Normalization Parameters; calculation and implementation.
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)
XmlElementNormalizationParms * XmlElementNormalizationParmsPtr
double Sigma(kkint32 i, RunLog &log)
void WriteToFile(const KKStr &_fileName, bool &_successfull, RunLog &_log) const
TrainingConfiguration2 * TrainingConfiguration2Ptr
Definition: Classifier2.h:56
FeatureVectorList * FeatureVectorListPtr
Definition: Model.h:46
Abstract Base class for Machine Learning parameters.
Definition: ModelParam.h:35
NormalizationParms(TrainingConfiguration2Ptr _config, FeatureVectorList &_examples, RunLog &_log)
volatile const bool VolConstBool
Definition: KKBaseTypes.h:163