GestureRecognitionToolkit
Version: 0.1.0
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
|
#include <Tree.h>
Public Types | |
enum | TrainingMode { BEST_ITERATIVE_SPILT =0, BEST_RANDOM_SPLIT, NUM_TRAINING_MODES } |
Public Member Functions | |
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 | clear () |
virtual bool | print () const |
virtual bool | getModel (std::ostream &stream) const |
virtual Node * | deepCopyTree () 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) |
Public Member Functions inherited from GRTBase | |
GRTBase (void) | |
virtual | ~GRTBase (void) |
bool | copyGRTBaseVariables (const GRTBase *GRTBase) |
std::string | getClassType () const |
std::string | getLastWarningMessage () const |
std::string | getLastErrorMessage () const |
std::string | getLastInfoMessage () const |
bool | setInfoLoggingEnabled (const bool loggingEnabled) |
bool | setWarningLoggingEnabled (const bool loggingEnabled) |
bool | setErrorLoggingEnabled (const bool loggingEnabled) |
GRTBase * | getGRTBasePointer () |
const GRTBase * | getGRTBasePointer () const |
Protected Attributes | |
UINT | trainingMode |
UINT | numSplittingSteps |
UINT | minNumSamplesPerNode |
UINT | maxDepth |
bool | removeFeaturesAtEachSpilt |
Node * | tree |
Protected Attributes inherited from GRTBase | |
std::string | classType |
DebugLog | debugLog |
ErrorLog | errorLog |
InfoLog | infoLog |
TrainingLog | trainingLog |
TestingLog | testingLog |
WarningLog | warningLog |
Additional Inherited Members | |
Static Public Member Functions inherited from GRTBase | |
static std::string | getGRTVersion (bool returnRevision=true) |
static std::string | getGRTRevison () |
Protected Member Functions inherited from GRTBase | |
Float | SQR (const Float &x) const |
GRT MIT License Copyright (c) <2012> <Nicholas Gillian, Media Lab, MIT>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
GRT_BEGIN_NAMESPACE Tree::Tree | ( | const UINT | numSplittingSteps = 100 , |
const UINT | minNumSamplesPerNode = 5 , |
||
const UINT | maxDepth = 10 , |
||
const bool | removeFeaturesAtEachSpilt = false , |
||
const UINT | trainingMode = BEST_ITERATIVE_SPILT |
||
) |
Default Constructor
numSplittingSteps | sets the number of steps that will be used to search for the best spliting value for each node. Default value = 100 |
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 |
maxDepth | sets the maximum depth of the tree. Default value = 10 |
removeFeaturesAtEachSpilt | sets if a feature is removed at each spilt so it can not be used again. Default value = false |
trainingMode | sets the training mode, this should be one of the TrainingMode enums. Default value = BEST_ITERATIVE_SPILT |
|
virtual |
This overrides the clear function in the Regressifier base class. It will completely clear the ML module, removing any trained model and setting all the base variables to their default values.
Reimplemented in DecisionTree, ClusterTree, and RegressionTree.
|
virtual |
Deep copies the tree, returning a pointer to the new 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 in DecisionTree, ClusterTree, and RegressionTree.
UINT Tree::getMaxDepth | ( | ) | const |
UINT Tree::getMinNumSamplesPerNode | ( | ) | const |
|
virtual |
This function adds the current model to the formatted stream. This function should be overwritten by the derived class.
file | a reference to the stream the model will be added to |
Reimplemented in DecisionTree.
UINT Tree::getNumSplittingSteps | ( | ) | const |
Gets the number of steps that will be used to search for the best spliting value for each node.
If the trainingMode is set to BEST_ITERATIVE_SPILT, then the numSplittingSteps controls how many iterative steps there will be per feature. If the trainingMode is set to BEST_RANDOM_SPLIT, then the numSplittingSteps controls how many random searches there will be per feature.
UINT Tree::getPredictedNodeID | ( | ) | const |
bool Tree::getRemoveFeaturesAtEachSpilt | ( | ) | const |
UINT Tree::getTrainingMode | ( | ) | const |
const Node * Tree::getTree | ( | ) | const |
|
virtual |
Prints the tree to std::cout.
Reimplemented in ClusterTree, and RegressionTree.
bool Tree::setMaxDepth | ( | const UINT | maxDepth | ) |
bool Tree::setMinNumSamplesPerNode | ( | const UINT | minNumSamplesPerNode | ) |
Sets the minimum number of samples that are allowed per node, if the number of samples at a node is below this value then the node will automatically become a leaf node. Value must be larger than zero.
minNumSamplesPerNode | the minimum number of samples that are allowed per node |
bool Tree::setNumSplittingSteps | ( | const UINT | numSplittingSteps | ) |
Sets the number of steps that will be used to search for the best spliting value for each node.
If the trainingMode is set to BEST_ITERATIVE_SPILT, then the numSplittingSteps controls how many iterative steps there will be per feature. If the trainingMode is set to BEST_RANDOM_SPLIT, then the numSplittingSteps controls how many random searches there will be per feature.
A higher value will increase the chances of building a better model, but will take longer to train the model. Value must be larger than zero.
numSplittingSteps | sets the number of steps that will be used to search for the best spliting value for each node. |
bool Tree::setRemoveFeaturesAtEachSpilt | ( | const bool | removeFeaturesAtEachSpilt | ) |
Sets if a feature is removed at each spilt so it can not be used again. If true then the best feature selected at each node will be removed so it can not be used in any children of that node. If false, then the feature that provides the best spilt at each node will be used, regardless of how many times it has been used again.
removeFeaturesAtEachSpilt | if true, then each feature is removed at each spilt so it can not be used again |
bool Tree::setTrainingMode | ( | const UINT | trainingMode | ) |