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.
RegressionTree.h
Go to the documentation of this file.
1 
31 #ifndef GRT_REGRESSION_TREE_HEADER
32 #define GRT_REGRESSION_TREE_HEADER
33 
34 #include "../../CoreModules/Regressifier.h"
35 #include "../../CoreAlgorithms/Tree/Tree.h"
36 #include "RegressionTreeNode.h"
37 
38 namespace GRT{
39 
40 class RegressionTree : public Tree, public Regressifier
41 {
42 public:
54  RegressionTree(const UINT numSplittingSteps=100,const UINT minNumSamplesPerNode=5,const UINT maxDepth=10,const bool removeFeaturesAtEachSpilt = false,const UINT trainingMode = BEST_ITERATIVE_SPILT,const bool useScaling=false,const double minRMSErrorPerNode = 0.01);
55 
61  RegressionTree(const RegressionTree &rhs);
62 
66  virtual ~RegressionTree(void);
67 
75 
83  virtual bool deepCopyFrom(const Regressifier *regressifier);
84 
92  virtual bool train_(RegressionData &trainingData);
93 
101  virtual bool predict_(VectorDouble &inputVector);
102 
109  virtual bool clear();
110 
116  virtual bool print() const;
117 
125  virtual bool saveModelToFile(fstream &file) const;
126 
134  virtual bool loadModelFromFile(fstream &file);
135 
144 
150  const RegressionTreeNode* getTree() const;
151 
158  double getMinRMSErrorPerNode() const;
159 
165  bool setMinRMSErrorPerNode(const double minRMSErrorPerNode);
166 
167  //Tell the compiler we are using the base class train method to stop hidden virtual function warnings
170  using MLBase::train;
171  using MLBase::predict;
172 
173 protected:
175 
176  RegressionTreeNode* buildTree( const RegressionData &trainingData, RegressionTreeNode *parent, vector< UINT > features, UINT nodeID );
177  bool computeBestSpilt( const RegressionData &trainingData, const vector< UINT > &features, UINT &featureIndex, double &threshold, double &minError );
178  bool computeBestSpiltBestIterativeSpilt( const RegressionData &trainingData, const vector< UINT > &features, UINT &featureIndex, double &threshold, double &minError );
179  //bool computeBestSpiltBestRandomSpilt( const RegressionData &trainingData, const vector< UINT > &features, const vector< UINT > &classLabels, UINT &featureIndex, double &threshold, double &minError );
180  bool computeNodeRegressionData( const RegressionData &trainingData, VectorDouble &regressionData );
181 
182  static RegisterRegressifierModule< RegressionTree > registerModule;
183 
184 };
185 
186 } //End of namespace GRT
187 
188 #endif //GRT_REGRESSION_TREE_HEADER
189 
virtual bool clear()
virtual bool saveModelToFile(string filename) const
Definition: MLBase.cpp:135
Definition: Tree.h:38
virtual bool loadModelFromFile(fstream &file)
RegressionTree & operator=(const RegressionTree &rhs)
virtual bool loadModelFromFile(string filename)
Definition: MLBase.cpp:157
double minRMSErrorPerNode
Definition: AdaBoost.cpp:25
double getMinRMSErrorPerNode() const
RegressionTree(const UINT numSplittingSteps=100, const UINT minNumSamplesPerNode=5, const UINT maxDepth=10, const bool removeFeaturesAtEachSpilt=false, const UINT trainingMode=BEST_ITERATIVE_SPILT, const bool useScaling=false, const double minRMSErrorPerNode=0.01)
virtual ~RegressionTree(void)
virtual bool train(ClassificationData trainingData)
Definition: MLBase.cpp:80
This file implements a RegressionTreeNode, which is a specific type of node used for a RegressionTree...
const RegressionTreeNode * getTree() const
virtual bool saveModelToFile(fstream &file) const
virtual bool train_(RegressionData &trainingData)
virtual bool predict_(VectorDouble &inputVector)
virtual bool predict(VectorDouble inputVector)
Definition: MLBase.cpp:104
virtual bool deepCopyFrom(const Regressifier *regressifier)
bool setMinRMSErrorPerNode(const double minRMSErrorPerNode)
virtual bool print() const
RegressionTreeNode * deepCopyTree() const