![]() |
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 | |
GaussianMixtureModels (const UINT numClusters=10, const UINT minNumEpochs=5, const UINT maxNumEpochs=1000, const double minChange=1.0e-5) | |
GaussianMixtureModels (const GaussianMixtureModels &rhs) | |
virtual | ~GaussianMixtureModels () |
GaussianMixtureModels & | operator= (const GaussianMixtureModels &rhs) |
virtual bool | deepCopyFrom (const Clusterer *clusterer) |
virtual bool | reset () |
virtual bool | clear () |
virtual bool | train_ (MatrixDouble &data) |
virtual bool | train_ (ClassificationData &trainingData) |
virtual bool | train_ (UnlabelledData &trainingData) |
virtual bool | predict_ (VectorDouble &inputVector) |
virtual bool | saveModelToFile (fstream &file) const |
virtual bool | loadModelFromFile (fstream &file) |
MatrixDouble | getMu () const |
vector< MatrixDouble > | getSigma () const |
MatrixDouble | getSigma (const UINT k) const |
![]() | |
Clusterer (void) | |
virtual | ~Clusterer (void) |
bool | copyBaseVariables (const Clusterer *Clusterer) |
bool | getConverged () const |
UINT | getNumClusters () const |
UINT | getPredictedClusterLabel () const |
double | getMaximumLikelihood () const |
double | getBestDistance () const |
VectorDouble | getClusterLikelihoods () const |
VectorDouble | getClusterDistances () const |
vector< UINT > | getClusterLabels () const |
string | getClustererType () const |
bool | setNumClusters (const UINT numClusters) |
Clusterer * | createNewInstance () const |
Clusterer * | deepCopy () const |
const Clusterer & | getBaseClusterer () 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 (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) |
virtual bool | getModel (ostream &stream) const |
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 |
![]() | |
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 |
![]() | |
virtual void | notify (const TrainingResult &data) |
![]() | |
virtual void | notify (const TestInstanceResult &data) |
Protected Member Functions | |
bool | estep (const MatrixDouble &data, VectorDouble &u, VectorDouble &v, double &change) |
bool | mstep (const MatrixDouble &data) |
bool | computeInvAndDet () |
void | SWAP (UINT &a, UINT &b) |
double | SQR (const double v) |
double | gauss (const VectorDouble &x, const UINT clusterIndex, const VectorDouble &det, const MatrixDouble &mu, const vector< MatrixDouble > &invSigma) |
![]() | |
bool | saveClustererSettingsToFile (fstream &file) const |
bool | loadClustererSettingsFromFile (fstream &file) |
![]() | |
bool | saveBaseSettingsToFile (fstream &file) const |
bool | loadBaseSettingsFromFile (fstream &file) |
![]() | |
double | SQR (const double &x) const |
Protected Attributes | |
UINT | numTrainingSamples |
The number of samples in the training data. | |
double | loglike |
The current loglikelihood value of the models given the data. | |
MatrixDouble | mu |
A matrix holding the estimated mean values of each Gaussian. | |
MatrixDouble | resp |
The responsibility matrix. | |
VectorDouble | frac |
A vector holding the P(k)'s. | |
VectorDouble | lndets |
A vector holding the log detminants of SIGMA'k. | |
VectorDouble | det |
vector< MatrixDouble > | sigma |
vector< MatrixDouble > | invSigma |
![]() | |
string | clustererType |
UINT | numClusters |
Number of clusters in the model. | |
UINT | predictedClusterLabel |
Stores the predicted cluster label from the most recent predict( ) | |
double | maxLikelihood |
double | bestDistance |
VectorDouble | clusterLikelihoods |
VectorDouble | clusterDistances |
vector< UINT > | clusterLabels |
bool | converged |
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 |
![]() | |
string | classType |
DebugLog | debugLog |
ErrorLog | errorLog |
InfoLog | infoLog |
TrainingLog | trainingLog |
TestingLog | testingLog |
WarningLog | warningLog |
Additional Inherited Members | |
![]() | |
typedef std::map< string, Clusterer *(*)() > | StringClustererMap |
![]() | |
enum | BaseTypes { BASE_TYPE_NOT_SET =0, CLASSIFIER, REGRESSIFIER, CLUSTERER } |
![]() | |
static Clusterer * | createInstanceFromString (string const &ClustererType) |
static vector< string > | getRegisteredClusterers () |
![]() | |
static string | getGRTVersion (bool returnRevision=true) |
static string | getGRTRevison () |
![]() | |
static StringClustererMap * | getMap () |
Definition at line 37 of file GaussianMixtureModels.h.
GRT::GaussianMixtureModels::GaussianMixtureModels | ( | const UINT | numClusters = 10 , |
const UINT | minNumEpochs = 5 , |
||
const UINT | maxNumEpochs = 1000 , |
||
const double | minChange = 1.0e-5 |
||
) |
Default Constructor.
Definition at line 10 of file GaussianMixtureModels.cpp.
GRT::GaussianMixtureModels::GaussianMixtureModels | ( | const GaussianMixtureModels & | rhs | ) |
Defines how the data from the rhs instance should be copied to this instance
const | GaussianMixtureModels &rhs: another instance of a GaussianMixtureModels |
Definition at line 29 of file GaussianMixtureModels.cpp.
|
virtual |
Default Destructor
Definition at line 56 of file GaussianMixtureModels.cpp.
|
virtual |
This function clears the Clusterer module, removing any trained model and setting all the base variables to their default values.
Reimplemented from GRT::Clusterer.
Definition at line 114 of file GaussianMixtureModels.cpp.
|
virtual |
This deep copies the variables and models from the Clusterer pointer to this GaussianMixtureModels instance. This overrides the base deep copy function for the Clusterer modules.
const | Clusterer *clusterer: a pointer to the Clusterer base class, this should be pointing to another GaussianMixtureModels instance |
Reimplemented from GRT::Clusterer.
Definition at line 80 of file GaussianMixtureModels.cpp.
|
inline |
This function returns the mu matrix which is built during the training phase. If the GMM model has not been trained, then this function will return an empty MatrixDouble. If the GMM model has been trained, then each row in the mu matrix represents a cluster and each column represents an input dimension.
Definition at line 141 of file GaussianMixtureModels.h.
|
inline |
This function returns the sigma matrix which is built during the training phase. If the GMM model has not been trained, then this function will return an empty vector< MatrixDouble >. If the GMM model has been trained, then each element in the returned vector represents a cluster. Each element is a MatrixDouble, which will have N rows and N columns, where N is the number of input dimensions to the model.
Definition at line 151 of file GaussianMixtureModels.h.
|
inline |
This function returns the sigma matrix for a specific cluster. If the GMM model has not been trained, then this function will return an empty MatrixDouble. If the GMM model has been trained, then the returned MatrixDouble will have N rows and N columns, where N is the number of input dimensions to the model.
Definition at line 160 of file GaussianMixtureModels.h.
|
virtual |
This loads a trained GaussianMixtureModels model from a file. This overrides the loadModelFromFile function in the base class.
fstream | &file: a reference to the file the GaussianMixtureModels model will be loaded from |
Reimplemented from GRT::MLBase.
Definition at line 362 of file GaussianMixtureModels.cpp.
GaussianMixtureModels & GRT::GaussianMixtureModels::operator= | ( | const GaussianMixtureModels & | rhs | ) |
Defines how the data from the rhs instance should be copied to this instance
const | GaussianMixtureModels &rhs: another instance of a GaussianMixtureModels |
Definition at line 59 of file GaussianMixtureModels.cpp.
|
virtual |
This is the main prediction interface for all the GRT machine learning algorithms. This should be overwritten by the derived class.
VectorDouble | &inputVector: a reference to the input vector for prediction |
Reimplemented from GRT::MLBase.
Definition at line 256 of file GaussianMixtureModels.cpp.
|
virtual |
This resets the Clusterer. This overrides the reset function in the MLBase base class.
Reimplemented from GRT::Clusterer.
Definition at line 104 of file GaussianMixtureModels.cpp.
|
virtual |
This saves the trained GaussianMixtureModels model to a file. This overrides the saveModelToFile function in the base class.
fstream | &file: a reference to the file the GaussianMixtureModels model will be saved to |
Reimplemented from GRT::MLBase.
Definition at line 309 of file GaussianMixtureModels.cpp.
|
virtual |
This is the main training interface for referenced MatrixDouble data. It overrides the train_ function in the ML base class.
MatrixDouble | &trainingData: a reference to the training data that will be used to train the ML model |
Reimplemented from GRT::Clusterer.
Definition at line 131 of file GaussianMixtureModels.cpp.
|
virtual |
This is the main training interface for reference ClassificationData data. It overrides the train_ function in the ML base class.
ClassificationData | &trainingData: a reference to the training data that will be used to train the ML model |
Reimplemented from GRT::Clusterer.
Definition at line 246 of file GaussianMixtureModels.cpp.
|
virtual |
This is the main training interface for reference UnlabelledData data. It overrides the train_ function in the ML base class.
UnlabelledData | &trainingData: a reference to the training data that will be used to train the ML model |
Reimplemented from GRT::Clusterer.
Definition at line 251 of file GaussianMixtureModels.cpp.