![]() |
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.
|
Public Member Functions | |
DecisionTree (const DecisionTreeNode &decisionTreeNode=DecisionTreeClusterNode(), const UINT minNumSamplesPerNode=5, const UINT maxDepth=10, const bool removeFeaturesAtEachSpilt=false, const UINT trainingMode=BEST_ITERATIVE_SPILT, const UINT numSplittingSteps=100, const bool useScaling=false) | |
DecisionTree (const DecisionTree &rhs) | |
virtual | ~DecisionTree (void) |
DecisionTree & | operator= (const DecisionTree &rhs) |
virtual bool | deepCopyFrom (const Classifier *classifier) |
virtual bool | train_ (ClassificationData &trainingData) |
virtual bool | predict_ (VectorDouble &inputVector) |
virtual bool | clear () |
virtual bool | recomputeNullRejectionThresholds () |
virtual bool | saveModelToFile (fstream &file) const |
virtual bool | loadModelFromFile (fstream &file) |
virtual bool | getModel (ostream &stream) const |
DecisionTreeNode * | deepCopyTree () const |
const DecisionTreeNode * | getTree () const |
DecisionTreeNode * | deepCopyDecisionTreeNode () const |
bool | setDecisionTreeNode (const DecisionTreeNode &node) |
![]() | |
Tree (const UINT numSplittingSteps=100, const UINT minNumSamplesPerNode=5, const UINT maxDepth=10, const bool removeFeaturesAtEachSpilt=false, const UINT trainingMode=BEST_ITERATIVE_SPILT) | |
virtual | ~Tree (void) |
virtual bool | print () const |
const Node * | getTree () const |
UINT | getTrainingMode () const |
UINT | getNumSplittingSteps () const |
UINT | getMinNumSamplesPerNode () const |
UINT | getMaxDepth () const |
UINT | getPredictedNodeID () const |
bool | getRemoveFeaturesAtEachSpilt () const |
bool | setTrainingMode (const UINT trainingMode) |
bool | setNumSplittingSteps (const UINT numSplittingSteps) |
bool | setMinNumSamplesPerNode (const UINT minNumSamplesPerNode) |
bool | setMaxDepth (const UINT maxDepth) |
bool | setRemoveFeaturesAtEachSpilt (const bool removeFeaturesAtEachSpilt) |
![]() | |
GRTBase (void) | |
virtual | ~GRTBase (void) |
bool | copyGRTBaseVariables (const GRTBase *GRTBase) |
string | getClassType () const |
string | getLastWarningMessage () const |
string | getLastErrorMessage () const |
string | getLastInfoMessage () const |
GRTBase * | getGRTBasePointer () |
const GRTBase * | getGRTBasePointer () const |
![]() | |
Classifier (void) | |
virtual | ~Classifier (void) |
bool | copyBaseVariables (const Classifier *classifier) |
virtual bool | reset () |
string | getClassifierType () const |
bool | getSupportsNullRejection () const |
bool | getNullRejectionEnabled () const |
double | getNullRejectionCoeff () const |
double | getMaximumLikelihood () const |
double | getBestDistance () const |
double | getPhase () const |
virtual UINT | getNumClasses () const |
UINT | getClassLabelIndexValue (UINT classLabel) const |
UINT | getPredictedClassLabel () const |
VectorDouble | getClassLikelihoods () const |
VectorDouble | getClassDistances () const |
VectorDouble | getNullRejectionThresholds () const |
vector< UINT > | getClassLabels () const |
vector< MinMax > | getRanges () const |
bool | enableNullRejection (bool useNullRejection) |
virtual bool | setNullRejectionCoeff (double nullRejectionCoeff) |
virtual bool | setNullRejectionThresholds (VectorDouble newRejectionThresholds) |
bool | getTimeseriesCompatible () const |
Classifier * | createNewInstance () const |
Classifier * | deepCopy () const |
const Classifier * | getClassifierPointer () const |
const Classifier & | getBaseClassifier () const |
![]() | |
MLBase (void) | |
virtual | ~MLBase (void) |
bool | copyMLBaseVariables (const MLBase *mlBase) |
virtual bool | train (ClassificationData trainingData) |
virtual bool | train (RegressionData trainingData) |
virtual bool | train_ (RegressionData &trainingData) |
virtual bool | train (TimeSeriesClassificationData trainingData) |
virtual bool | train_ (TimeSeriesClassificationData &trainingData) |
virtual bool | train (TimeSeriesClassificationDataStream trainingData) |
virtual bool | train_ (TimeSeriesClassificationDataStream &trainingData) |
virtual bool | train (UnlabelledData trainingData) |
virtual bool | train_ (UnlabelledData &trainingData) |
virtual bool | train (MatrixDouble data) |
virtual bool | train_ (MatrixDouble &data) |
virtual bool | predict (VectorDouble inputVector) |
virtual bool | predict (MatrixDouble inputMatrix) |
virtual bool | predict_ (MatrixDouble &inputMatrix) |
virtual bool | map (VectorDouble inputVector) |
virtual bool | map_ (VectorDouble &inputVector) |
virtual bool | print () const |
virtual bool | save (const string filename) const |
virtual bool | load (const string filename) |
virtual bool | saveModelToFile (string filename) const |
virtual bool | loadModelFromFile (string filename) |
double | scale (const double &x, const double &minSource, const double &maxSource, const double &minTarget, const double &maxTarget, const bool constrain=false) |
virtual string | getModelAsString () const |
UINT | getBaseType () const |
UINT | getNumInputFeatures () const |
UINT | getNumInputDimensions () const |
UINT | getNumOutputDimensions () const |
UINT | getMinNumEpochs () const |
UINT | getMaxNumEpochs () const |
UINT | getValidationSetSize () const |
UINT | getNumTrainingIterationsToConverge () const |
double | getMinChange () const |
double | getLearningRate () const |
double | getRootMeanSquaredTrainingError () const |
double | getTotalSquaredTrainingError () const |
bool | getUseValidationSet () const |
bool | getRandomiseTrainingOrder () const |
bool | getTrained () const |
bool | getModelTrained () const |
bool | getScalingEnabled () const |
bool | getIsBaseTypeClassifier () const |
bool | getIsBaseTypeRegressifier () const |
bool | getIsBaseTypeClusterer () const |
bool | enableScaling (bool useScaling) |
bool | setMaxNumEpochs (const UINT maxNumEpochs) |
bool | setMinNumEpochs (const UINT minNumEpochs) |
bool | setMinChange (const double minChange) |
bool | setLearningRate (double learningRate) |
bool | setUseValidationSet (const bool useValidationSet) |
bool | setValidationSetSize (const UINT validationSetSize) |
bool | setRandomiseTrainingOrder (const bool randomiseTrainingOrder) |
bool | registerTrainingResultsObserver (Observer< TrainingResult > &observer) |
bool | registerTestResultsObserver (Observer< TestInstanceResult > &observer) |
bool | removeTrainingResultsObserver (const Observer< TrainingResult > &observer) |
bool | removeTestResultsObserver (const Observer< TestInstanceResult > &observer) |
bool | removeAllTrainingObservers () |
bool | removeAllTestObservers () |
bool | notifyTrainingResultsObservers (const TrainingResult &data) |
bool | notifyTestResultsObservers (const TestInstanceResult &data) |
MLBase * | getMLBasePointer () |
const MLBase * | getMLBasePointer () const |
vector< TrainingResult > | getTrainingResults () const |
![]() | |
virtual void | notify (const TrainingResult &data) |
![]() | |
virtual void | notify (const TestInstanceResult &data) |
Protected Member Functions | |
bool | loadLegacyModelFromFile_v1 (fstream &file) |
bool | loadLegacyModelFromFile_v2 (fstream &file) |
bool | loadLegacyModelFromFile_v3 (fstream &file) |
DecisionTreeNode * | buildTree (ClassificationData &trainingData, DecisionTreeNode *parent, vector< UINT > features, const vector< UINT > &classLabels, UINT nodeID) |
double | getNodeDistance (const VectorDouble &x, const UINT nodeID) |
double | getNodeDistance (const VectorDouble &x, const VectorDouble &y) |
![]() | |
double | SQR (const double &x) const |
![]() | |
bool | saveBaseSettingsToFile (fstream &file) const |
bool | loadBaseSettingsFromFile (fstream &file) |
![]() | |
bool | saveBaseSettingsToFile (fstream &file) const |
bool | loadBaseSettingsFromFile (fstream &file) |
Protected Attributes | |
DecisionTreeNode * | decisionTreeNode |
std::map< UINT, VectorDouble > | nodeClusters |
VectorDouble | classClusterMean |
VectorDouble | classClusterStdDev |
![]() | |
UINT | trainingMode |
UINT | numSplittingSteps |
UINT | minNumSamplesPerNode |
UINT | maxDepth |
bool | removeFeaturesAtEachSpilt |
Node * | tree |
![]() | |
string | classType |
DebugLog | debugLog |
ErrorLog | errorLog |
InfoLog | infoLog |
TrainingLog | trainingLog |
TestingLog | testingLog |
WarningLog | warningLog |
![]() | |
string | classifierType |
bool | supportsNullRejection |
bool | useNullRejection |
UINT | numClasses |
UINT | predictedClassLabel |
UINT | classifierMode |
double | nullRejectionCoeff |
double | maxLikelihood |
double | bestDistance |
double | phase |
VectorDouble | classLikelihoods |
VectorDouble | classDistances |
VectorDouble | nullRejectionThresholds |
vector< UINT > | classLabels |
vector< MinMax > | ranges |
![]() | |
bool | trained |
bool | useScaling |
UINT | baseType |
UINT | numInputDimensions |
UINT | numOutputDimensions |
UINT | numTrainingIterationsToConverge |
UINT | minNumEpochs |
UINT | maxNumEpochs |
UINT | validationSetSize |
double | learningRate |
double | minChange |
double | rootMeanSquaredTrainingError |
double | totalSquaredTrainingError |
bool | useValidationSet |
bool | randomiseTrainingOrder |
Random | random |
vector< TrainingResult > | trainingResults |
TrainingResultsObserverManager | trainingResultsObserverManager |
TestResultsObserverManager | testResultsObserverManager |
Static Protected Attributes | |
static RegisterClassifierModule< DecisionTree > | registerModule |
Additional Inherited Members | |
![]() | |
enum | TrainingMode { BEST_ITERATIVE_SPILT =0, BEST_RANDOM_SPLIT, NUM_TRAINING_MODES } |
![]() | |
typedef std::map< string, Classifier *(*)() > | StringClassifierMap |
![]() | |
enum | BaseTypes { BASE_TYPE_NOT_SET =0, CLASSIFIER, REGRESSIFIER, CLUSTERER } |
![]() | |
static string | getGRTVersion (bool returnRevision=true) |
static string | getGRTRevison () |
![]() | |
static Classifier * | createInstanceFromString (string const &classifierType) |
static vector< string > | getRegisteredClassifiers () |
![]() | |
enum | ClassifierModes { STANDARD_CLASSIFIER_MODE =0, TIMESERIES_CLASSIFIER_MODE } |
![]() | |
static StringClassifierMap * | getMap () |
Definition at line 47 of file DecisionTree.h.
DecisionTree::DecisionTree | ( | const DecisionTreeNode & | decisionTreeNode = DecisionTreeClusterNode() , |
const UINT | minNumSamplesPerNode = 5 , |
||
const UINT | maxDepth = 10 , |
||
const bool | removeFeaturesAtEachSpilt = false , |
||
const UINT | trainingMode = BEST_ITERATIVE_SPILT , |
||
const UINT | numSplittingSteps = 100 , |
||
const bool | useScaling = false |
||
) |
Default Constructor
const | DecisionTreeNode &decisionTreeNode: sets the type of decision tree node that will be used when training a new decision tree model. Default: DecisionTreeClusterNode |
UINT | minNumSamplesPerNode: sets the minimum number of samples that are allowed per node, if the number of samples is below that, the node will become a leafNode. Default value = 5 |
UINT | maxDepth: sets the maximum depth of the tree. Default value = 10 |
bool | removeFeaturesAtEachSpilt: sets if a feature is removed at each spilt so it can not be used again. Default value = false |
UINT | trainingMode: sets the training mode, this should be one of the TrainingMode enums. Default value = BEST_ITERATIVE_SPILT |
UINT | numSplittingSteps: sets the number of steps that will be used to search for the best spliting value for each node. Default value = 100 |
bool | useScaling: sets if the training and real-time data should be scaled between [0 1]. Default value = false |
Definition at line 28 of file DecisionTree.cpp.
DecisionTree::DecisionTree | ( | const DecisionTree & | rhs | ) |
Defines the copy constructor.
const | DecisionTree &rhs: the instance from which all the data will be copied into this instance |
Definition at line 51 of file DecisionTree.cpp.
|
virtual |
Default Destructor
Definition at line 64 of file DecisionTree.cpp.
|
virtual |
This overrides the clear function in the Classifier base class. It will completely clear the ML module, removing any trained model and setting all the base variables to their default values.
Reimplemented from GRT::Tree.
Definition at line 322 of file DecisionTree.cpp.
DecisionTreeNode * DecisionTree::deepCopyDecisionTreeNode | ( | ) | const |
Gets a pointer to the decision tree node. NULL will be returned if the decision tree node has not been set.
Definition at line 662 of file DecisionTree.cpp.
|
virtual |
This is required for the Gesture Recognition Pipeline for when the pipeline.setClassifier(...) method is called. It clones the data from the Base Class Classifier pointer (which should be pointing to an DecisionTree instance) into this instance
Classifier | *classifier: a pointer to the Classifier Base Class, this should be pointing to another DecisionTree instance |
Reimplemented from GRT::Classifier.
Definition at line 104 of file DecisionTree.cpp.
|
virtual |
Deep copies the decision tree, returning a pointer to the new decision tree. The user is in charge of cleaning up the memory so must delete the pointer when they no longer need it. NULL will be returned if the tree could not be copied.
Reimplemented from GRT::Tree.
Definition at line 653 of file DecisionTree.cpp.
|
virtual |
This function adds the current model to the formatted stream. This function should be overwritten by the derived class.
ostream | &file: a reference to the stream the model will be added to |
Reimplemented from GRT::Tree.
Definition at line 645 of file DecisionTree.cpp.
const DecisionTreeNode * DecisionTree::getTree | ( | ) | const |
Gets a pointer to the decision tree. NULL will be returned if the decision tree model has not be trained.
Definition at line 671 of file DecisionTree.cpp.
|
protected |
Read the ranges if needed
Definition at line 809 of file DecisionTree.cpp.
|
virtual |
This loads a trained DecisionTree model from a file. This overrides the loadModelFromFile function in the Classifier base class.
fstream | &file: a reference to the file the DecisionTree model will be loaded from |
Reimplemented from GRT::MLBase.
Definition at line 445 of file DecisionTree.cpp.
DecisionTree & DecisionTree::operator= | ( | const DecisionTree & | rhs | ) |
Defines how the data from the rhs DecisionTree should be copied to this DecisionTree
const | DecisionTree &rhs: another instance of a DecisionTree |
Definition at line 74 of file DecisionTree.cpp.
|
virtual |
This predicts the class of the inputVector. This overrides the predict function in the Classifier base class.
VectorDouble | inputVector: the input vector to classify |
Reimplemented from GRT::MLBase.
Definition at line 246 of file DecisionTree.cpp.
|
virtual |
This recomputes the null rejection thresholds for each of the classes in the DecisionTree model. The DecisionTree model needs to be trained first before this function can be called.
Reimplemented from GRT::Classifier.
Definition at line 342 of file DecisionTree.cpp.
|
virtual |
This saves the trained DecisionTree model to a file. This overrides the saveModelToFile function in the Classifier base class.
fstream | &file: a reference to the file the DecisionTree model will be saved to |
Reimplemented from GRT::MLBase.
Definition at line 364 of file DecisionTree.cpp.
bool DecisionTree::setDecisionTreeNode | ( | const DecisionTreeNode & | node | ) |
Sets the decision tree node, this will be used as the starting node the next time the DecisionTree model is trained.
Definition at line 675 of file DecisionTree.cpp.
|
virtual |
This trains the DecisionTree model, using the labelled classification data. This overrides the train function in the Classifier base class.
ClassificationData | trainingData: a reference to the training data |
Reimplemented from GRT::MLBase.
Definition at line 140 of file DecisionTree.cpp.