GestureRecognitionToolkit  Version: 1.0 Revision: 04-03-15
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
KMeansFeatures.h
Go to the documentation of this file.
1 
29 #ifndef GRT_KMEANS_FEATURES_HEADER
30 #define GRT_KMEANS_FEATURES_HEADER
31 
32 //Include the main GRT header to get access to the FeatureExtraction base class
33 #include "../../CoreModules/FeatureExtraction.h"
34 #include "../../ClusteringModules/KMeans/KMeans.h"
35 #include "../../DataStructures/TimeSeriesClassificationData.h"
36 #include "../../DataStructures/TimeSeriesClassificationDataStream.h"
37 #include "../../DataStructures/UnlabelledData.h"
38 
39 namespace GRT{
40 
42 public:
49  KMeansFeatures(const vector< UINT > numClustersPerLayer = vector< UINT >(1,100),const double alpha = 0.2,const bool useScaling = true);
50 
56  KMeansFeatures(const KMeansFeatures &rhs);
57 
61  virtual ~KMeansFeatures();
62 
70 
79  virtual bool deepCopyFrom(const FeatureExtraction *featureExtraction);
80 
89  virtual bool computeFeatures(const VectorDouble &inputVector);
90 
98  virtual bool reset();
99 
106  virtual bool saveModelToFile(string filename) const;
107 
114  virtual bool loadModelFromFile(string filename);
115 
124  virtual bool saveModelToFile(fstream &file) const;
125 
133  virtual bool loadModelFromFile(fstream &file);
134 
141  virtual bool train_(ClassificationData &trainingData);
142 
149  virtual bool train_(TimeSeriesClassificationData &trainingData);
150 
157  virtual bool train_(TimeSeriesClassificationDataStream &trainingData);
158 
165  virtual bool train_(UnlabelledData &trainingData);
166 
173  virtual bool train_(MatrixDouble &trainingData);
174 
175  bool computeFeatures(VectorDouble &inputVector,VectorDouble &outputVector);
176 
177  bool init( const vector< UINT > numClustersPerLayer );
178 
179  bool projectDataThroughLayer( const VectorDouble &input, VectorDouble &output, const UINT layer );
180 
181  UINT getNumLayers() const;
182  UINT getLayerSize(const UINT layerIndex) const;
183  vector< MatrixDouble > getClusters() const;
184 
185  //Tell the compiler we are using the following functions from the MLBase class to stop hidden virtual function warnings
186  using MLBase::train;
187  using MLBase::train_;
188  using MLBase::predict;
189  using MLBase::predict_;
190 
191 protected:
192  double alpha;
193  vector< UINT > numClustersPerLayer;
194  vector< MinMax > ranges;
195  vector< MatrixDouble > clusters;
196 
198 };
199 
200 }//End of namespace GRT
201 
202 #endif //GRT_KMEANS_FEATURES_HEADER
virtual bool saveModelToFile(string filename) const
KMeansFeatures(const vector< UINT > numClustersPerLayer=vector< UINT >(1, 100), const double alpha=0.2, const bool useScaling=true)
Definition: AdaBoost.cpp:25
virtual bool train(ClassificationData trainingData)
Definition: MLBase.cpp:80
virtual bool computeFeatures(const VectorDouble &inputVector)
virtual bool predict(VectorDouble inputVector)
Definition: MLBase.cpp:104
virtual bool predict_(VectorDouble &inputVector)
Definition: MLBase.cpp:106
virtual bool reset()
virtual bool deepCopyFrom(const FeatureExtraction *featureExtraction)
virtual bool loadModelFromFile(string filename)
virtual bool train_(ClassificationData &trainingData)
Definition: MLBase.cpp:82
virtual bool train_(ClassificationData &trainingData)
KMeansFeatures & operator=(const KMeansFeatures &rhs)