Public Member Functions | Protected Attributes

CGMM Class Reference


Detailed Description

Gaussian Mixture Model interface.

Takes input of number of Gaussians to fit and a covariance type to use. Parameter estimation is done using either the Expectation-Maximization or Split-Merge Expectation-Maximization algorithms. To estimate the GMM parameters, the train(...) method has to be run to set the training data and then either train_em(...) or train_smem(...) to do the actual estimation. The EM algorithm is described here: http://en.wikipedia.org/wiki/Expectation-maximization_algorithm The SMEM algorithm is described here: http://mlg.eng.cam.ac.uk/zoubin/papers/uedanc.pdf

Definition at line 36 of file GMM.h.

Inheritance diagram for CGMM:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CGMM ()
 CGMM (int32_t n, ECovType cov_type=FULL)
 CGMM (SGVector< CGaussian * > components, SGVector< float64_t > coefficients, bool copy=false)
virtual ~CGMM ()
void cleanup ()
virtual bool train (CFeatures *data=NULL)
float64_t train_em (float64_t min_cov=1e-9, int32_t max_iter=1000, float64_t min_change=1e-9)
float64_t train_smem (int32_t max_iter=100, int32_t max_cand=5, float64_t min_cov=1e-9, int32_t max_em_iter=1000, float64_t min_change=1e-9)
void max_likelihood (SGMatrix< float64_t > alpha, float64_t min_cov)
virtual int32_t get_num_model_parameters ()
virtual float64_t get_log_model_parameter (int32_t num_param)
virtual float64_t get_log_derivative (int32_t num_param, int32_t num_example)
virtual float64_t get_log_likelihood_example (int32_t num_example)
virtual float64_t get_likelihood_example (int32_t num_example)
virtual SGVector< float64_tget_nth_mean (int32_t num)
virtual void set_nth_mean (SGVector< float64_t > mean, int32_t num)
virtual SGMatrix< float64_tget_nth_cov (int32_t num)
virtual void set_nth_cov (SGMatrix< float64_t > cov, int32_t num)
virtual SGVector< float64_tget_coef ()
virtual void set_coef (SGVector< float64_t > coefficients)
virtual SGVector< CGaussian * > get_comp ()
virtual void set_comp (SGVector< CGaussian * > components)
SGVector< float64_tsample ()
SGVector< float64_tcluster (SGVector< float64_t > point)
virtual const char * get_name () const

Protected Attributes

SGVector< CGaussian * > m_components
SGVector< float64_tm_coefficients

Constructor & Destructor Documentation

CGMM (  ) 

default constructor

Definition at line 25 of file GMM.cpp.

CGMM ( int32_t  n,
ECovType  cov_type = FULL 
)

constructor

Parameters:
n number of Gaussians
cov_type covariance type

Definition at line 30 of file GMM.cpp.

CGMM ( SGVector< CGaussian * >  components,
SGVector< float64_t coefficients,
bool  copy = false 
)

constructor

Parameters:
components GMM components
coefficients mixing coefficients
copy true if should be copied

Definition at line 47 of file GMM.cpp.

~CGMM (  )  [virtual]

Definition at line 98 of file GMM.cpp.


Member Function Documentation

void cleanup (  ) 

cleanup

Definition at line 104 of file GMM.cpp.

SGVector< float64_t > cluster ( SGVector< float64_t point  ) 

cluster point

Returns:
log likelihood of belonging to clusters and the log likelihood of being generated by this GMM The length of the returned vector is number of components + 1

Definition at line 713 of file GMM.cpp.

virtual SGVector<float64_t> get_coef (  )  [virtual]

get coefficients

Returns:
coeffiecients

Definition at line 189 of file GMM.h.

virtual SGVector<CGaussian*> get_comp (  )  [virtual]

get components

Returns:
components

Definition at line 208 of file GMM.h.

virtual float64_t get_likelihood_example ( int32_t  num_example  )  [virtual]

compute likelihood for example

abstract base method

Parameters:
num_example which example
Returns:
likelihood for example

Reimplemented from CDistribution.

Definition at line 134 of file GMM.h.

float64_t get_log_derivative ( int32_t  num_param,
int32_t  num_example 
) [virtual]

get partial derivative of likelihood function (logarithmic)

Parameters:
num_param derivative against which param
num_example which example
Returns:
derivative of likelihood (logarithmic)

Implements CDistribution.

Definition at line 662 of file GMM.cpp.

float64_t get_log_likelihood_example ( int32_t  num_example  )  [virtual]

compute log likelihood for example

abstract base method

Parameters:
num_example which example
Returns:
log likelihood for example

Implements CDistribution.

Definition at line 668 of file GMM.cpp.

float64_t get_log_model_parameter ( int32_t  num_param  )  [virtual]

get model parameter (logarithmic)

Returns:
model parameter (logarithmic) if num_param < m_dim returns an element from the mean, else return an element from the covariance

Implements CDistribution.

Definition at line 655 of file GMM.cpp.

virtual const char* get_name ( void   )  const [virtual]
Returns:
object name

Implements CSGObject.

Definition at line 247 of file GMM.h.

virtual SGMatrix<float64_t> get_nth_cov ( int32_t  num  )  [virtual]

get nth covariance

Parameters:
num index of covariance to retrieve
Returns:
covariance

Definition at line 168 of file GMM.h.

virtual SGVector<float64_t> get_nth_mean ( int32_t  num  )  [virtual]

get nth mean

Parameters:
num index of mean to retrieve
Returns:
mean

Definition at line 145 of file GMM.h.

int32_t get_num_model_parameters (  )  [virtual]

get number of parameters in model

Returns:
number of parameters in model

Implements CDistribution.

Definition at line 650 of file GMM.cpp.

void max_likelihood ( SGMatrix< float64_t alpha,
float64_t  min_cov 
)

maximum likelihood estimation

Parameters:
alpha point assignment
min_cov minimum covariance

Definition at line 531 of file GMM.cpp.

SGVector< float64_t > sample (  ) 

sample from model

Returns:
sample

Definition at line 699 of file GMM.cpp.

virtual void set_coef ( SGVector< float64_t coefficients  )  [virtual]

set coefficients

Parameters:
coefficients mixing coefficients

Definition at line 198 of file GMM.h.

virtual void set_comp ( SGVector< CGaussian * >  components  )  [virtual]

set components

Parameters:
components Gaussian components

Definition at line 217 of file GMM.h.

virtual void set_nth_cov ( SGMatrix< float64_t cov,
int32_t  num 
) [virtual]

set nth covariance

Parameters:
cov new covariance
num index of covariance to set

Definition at line 179 of file GMM.h.

virtual void set_nth_mean ( SGVector< float64_t mean,
int32_t  num 
) [virtual]

set nth mean

Parameters:
mean new mean
num index mean to set

Definition at line 156 of file GMM.h.

bool train ( CFeatures data = NULL  )  [virtual]

set training data for use with EM or SMEM

Parameters:
data training data
Returns:
true

init features with data if necessary and assure type is correct

Implements CDistribution.

Definition at line 113 of file GMM.cpp.

float64_t train_em ( float64_t  min_cov = 1e-9,
int32_t  max_iter = 1000,
float64_t  min_change = 1e-9 
)

learn model using EM

Parameters:
min_cov minimum covariance
max_iter maximum iterations
min_change minimum change in log likelihood
Returns:
log likelihood of training data

Definition at line 128 of file GMM.cpp.

float64_t train_smem ( int32_t  max_iter = 100,
int32_t  max_cand = 5,
float64_t  min_cov = 1e-9,
int32_t  max_em_iter = 1000,
float64_t  min_change = 1e-9 
)

learn model using SMEM

Parameters:
max_iter maximum SMEM iterations
max_cand maximum split-merge candidates
min_cov minimum covariance
max_em_iter maximum iterations for EM
min_change minimum change in log likelihood
Returns:
log likelihood of training data

Definition at line 206 of file GMM.cpp.


Member Data Documentation

Mixture coefficients

Definition at line 276 of file GMM.h.

Mixture components

Definition at line 274 of file GMM.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

SHOGUN Machine Learning Toolbox - Documentation