Documentation - C API
gmm.h File Reference

GMM (Gaussian Mixture Models (GMM)) More...

#include "kmeans.h"

Typedefs

typedef OPAQUE VlGMM
 GMM quantizer.

Enumerations

enum  VlGMMInitialization { VlGMMKMeans, VlGMMRand, VlGMMCustom }
 GMM initialization algorithms. More...

Functions

Create and destroy
VlGMMvl_gmm_new (vl_type dataType)
 Create a new GMM object.
VlGMMvl_gmm_new_copy (VlGMM const *gmm)
 Create a new GMM object by copy.
void vl_gmm_delete (VlGMM *self)
 Deletes a GMM object.
void vl_gmm_reset (VlGMM *self)
 Reset state.
Basic data processing
double vl_gmm_get_mixture (VlGMM *self, void const *data, vl_size numData)
 Invoke the EM algorithm.
double vl_gmm_cluster (VlGMM *self, void const *data, vl_size dimension, vl_size numData, vl_size numCenters)
 Run GMM clustering - includes initialization and EM.
void vl_gmm_rand_init_mixture (VlGMM *self, void const *data, vl_size dimension, vl_size numData, vl_size numMeans)
 Initialize mixture before EM takes place using random initialization.
void vl_gmm_kmeans_init_mixture (VlGMM *self, void const *data, vl_size dimension, vl_size numData, vl_size numClusters)
 Initialize mixture before EM takes place using kmeans.
void vl_gmm_init_mixture (VlGMM *self, void const *data, vl_size dimension, vl_size numData, vl_size numClusters)
 Initialize mixture before EM takes place.
Advanced data processing
void vl_gmm_set_means (VlGMM *self, void *means, vl_size numClusters, vl_size dimension)
 Explicitly set the initial means for EM.
void vl_gmm_set_sigmas (VlGMM *self, void *sigmas, vl_size numClusters, vl_size dimension)
 Explicitly set the initial sigma diagonals for EM.
void vl_gmm_set_weights (VlGMM *self, void *weights, vl_size numClusters)
 Explicitly set the initial weights of the gaussians.
void vl_gmm_set_posteriors (VlGMM *self, void *posteriors, vl_size numClusters, vl_size numData)
 Explicitly set the posterior probabilities.
Set parameters
void vl_gmm_set_dimension (VlGMM *self, vl_size dimension)
 Set dimensionality of the data.
void vl_gmm_set_num_repetitions (VlGMM *self, vl_size numRepetitions)
 Set maximum number of repetitions.
void vl_gmm_set_max_num_iterations (VlGMM *self, vl_size maxNumIterations)
 Set maximum number of iterations.
void vl_gmm_set_verbosity (VlGMM *self, int verbosity)
 Set verbosity level.
void vl_gmm_set_num_clusters (VlGMM *self, vl_size numClusters)
 Set the number of clusters.
void vl_gmm_set_initialization (VlGMM *self, VlGMMInitialization init)
 Set initialization algorithm.
void vl_gmm_set_kmeans_init_object (VlGMM *self, VlKMeans *kmeans)
 Set KMeans initialization object.
void vl_gmm_set_sigma_lower_bound (VlGMM *self, double lowbound)
 Set lower bound on sigma diagonals.
Get parameters
void const * vl_gmm_get_means (VlGMM const *self)
 Get means.
void const * vl_gmm_get_sigmas (VlGMM const *self)
 Get sigmas.
void const * vl_gmm_get_priors (VlGMM const *self)
 Get weights.
void const * vl_gmm_get_posteriors (VlGMM const *self)
 Get posteriors.
vl_type vl_gmm_get_data_type (VlGMM const *self)
 Get data type.
vl_size vl_gmm_get_dimension (VlGMM const *self)
 Get data dimension.
vl_size vl_gmm_get_num_clusters (VlGMM const *self)
 Get the number of clusters.
vl_size vl_gmm_get_num_data (VlGMM const *self)
 Get the number of data points.
double vl_gmm_get_loglikelyhood (VlGMM const *self)
int vl_gmm_get_verbosity (VlGMM const *self)
 Get verbosity level.
vl_size vl_gmm_get_max_num_iterations (VlGMM const *self)
 Get maximum number of iterations.
vl_size vl_gmm_get_num_repetitions (VlGMM const *self)
 Get maximum number of repetitions.
VlGMMInitialization vl_gmm_get_initialization (VlGMM const *self)
 Get initialization algorithm.
VlKMeansvl_gmm_get_kmeans_init_object (VlGMM const *self)
 Get KMeans initialization object.
double vl_gmm_get_sigma_lower_bound (VlGMM *self)
 Get lower bound on sigma diagonals.

Detailed Description

Author:
David Novotny

Enumeration Type Documentation

Enumerator:
VlGMMKMeans 

KMeans initialization

VlGMMRand 

Random selection initialization

VlGMMCustom 

User specifies initialization parameters


Function Documentation

double vl_gmm_cluster ( VlGMM self,
void const *  data,
vl_size  dimension,
vl_size  numData,
vl_size  numClusters 
)
Parameters:
selfGMM object instance.
datadata points which should be clustered.
dimensiondimensionality of the data points.
numDatanumber of data points.
numClustersnumber of gaussians which should be estimated.
void vl_gmm_delete ( VlGMM self)
Parameters:
selfGMM object instance.

The function deletes the GMM object instance created by vl_gmm_new.

vl_type vl_gmm_get_data_type ( VlGMM const *  self)
Parameters:
selfobject
Returns:
data type.
vl_size vl_gmm_get_dimension ( VlGMM const *  self)
Parameters:
selfobject
Returns:
data dimension.
VlGMMInitialization vl_gmm_get_initialization ( VlGMM const *  self)
Parameters:
selfobject
Returns:
initialization algorithm.
VlKMeans* vl_gmm_get_kmeans_init_object ( VlGMM const *  self)
Parameters:
selfobject
Returns:
kmeans initialization object.
vl_size vl_gmm_get_max_num_iterations ( VlGMM const *  self)
Parameters:
selfobject
Returns:
maximum number of iterations.
void const* vl_gmm_get_means ( VlGMM const *  self)
Parameters:
selfobject
Returns:
cluster means.
double vl_gmm_get_mixture ( VlGMM self,
void const *  data,
vl_size  numData 
)
Parameters:
selfGMM object instance.
datadata points which should be clustered.
numDatanumber of data points.
vl_size vl_gmm_get_num_clusters ( VlGMM const *  self)
Parameters:
selfobject
Returns:
number of clusters.
vl_size vl_gmm_get_num_data ( VlGMM const *  self)
Parameters:
selfobject
Returns:
number of data points.
vl_size vl_gmm_get_num_repetitions ( VlGMM const *  self)
Parameters:
selfobject
Returns:
current number of repretitions for quantization.
void const* vl_gmm_get_posteriors ( VlGMM const *  self)
Parameters:
selfobject
Returns:
posterior probabilities of cluster memberships.
void const* vl_gmm_get_priors ( VlGMM const *  self)
Parameters:
selfobject
Returns:
weights of cluster gaussians.
double vl_gmm_get_sigma_lower_bound ( VlGMM self)
Parameters:
selfobject
Returns:
lower bound on sigmas.
void const* vl_gmm_get_sigmas ( VlGMM const *  self)
Parameters:
selfobject
Returns:
diagonals of cluster covariance matrices.
int vl_gmm_get_verbosity ( VlGMM const *  self)
Parameters:
selfobject
Returns:
verbosity level.
void vl_gmm_init_mixture ( VlGMM self,
void const *  data,
vl_size  dimension,
vl_size  numData,
vl_size  numClusters 
)
Parameters:
selfGMM object instance.
datadata points which should be clustered.
dimensiondimensionality of the data points.
numDatanumber of data points.
numClustersnumber of gaussians which should be estimated.
void vl_gmm_kmeans_init_mixture ( VlGMM self,
void const *  data,
vl_size  dimension,
vl_size  numData,
vl_size  numClusters 
)
Parameters:
selfGMM object instance.
datadata points which should be clustered.
dimensiondimensionality of the data points.
numDatanumber of data points.
numClustersnumber of gaussians which should be estimated.
VlGMM* vl_gmm_new ( vl_type  dataType)
Parameters:
dataTypetype of data (VL_TYPE_FLOAT or VL_TYPE_DOUBLE)
Returns:
new GMM object instance.
VlGMM* vl_gmm_new_copy ( VlGMM const *  gmm)
Parameters:
gmmGMM object to copy.
Returns:
new copy.
void vl_gmm_rand_init_mixture ( VlGMM self,
void const *  data,
vl_size  dimension,
vl_size  numData,
vl_size  numClusters 
)
Parameters:
selfGMM object instance.
datadata points which should be clustered.
dimensiondimensionality of the data points.
numDatanumber of data points.
numClustersnumber of gaussians which should be estimated.
void vl_gmm_reset ( VlGMM self)
Parameters:
selfobject.

The function reset the state of the GMM object. It deletes any stored means, sigmas, weights and posterior probabilities releasing the corresponding memory. This cancels the effect of seeding or setting the means, sigmas and weights, but does not change the other configuration parameters.

void vl_gmm_set_dimension ( VlGMM self,
vl_size  dimension 
)
Parameters:
selfobject
dimensiondimensionality of the data. The number of repetitions cannot be smaller than 1.
void vl_gmm_set_initialization ( VlGMM self,
VlGMMInitialization  init 
)
Parameters:
selfobject
initinitialization algorithm.
void vl_gmm_set_kmeans_init_object ( VlGMM self,
VlKMeans kmeans 
)
Parameters:
selfobject
kmeansinitialization KMeans object.
void vl_gmm_set_max_num_iterations ( VlGMM self,
vl_size  maxNumIterations 
)
Parameters:
selfVlGMM filter.
maxNumIterationsmaximum number of iterations.
void vl_gmm_set_means ( VlGMM self,
void *  means,
vl_size  numClusters,
vl_size  dimension 
)
Parameters:
selfGMM object instance.
meansinitial values of means.
numClustersnumber of mean points.
dimensiondimensionality of the means.
void vl_gmm_set_num_clusters ( VlGMM self,
vl_size  numClusters 
)
Parameters:
selfobject
numClustersnumber of clusters..
void vl_gmm_set_num_repetitions ( VlGMM self,
vl_size  numRepetitions 
)
Parameters:
selfobject
numRepetitionsmaximum number of repetitions. The number of repetitions cannot be smaller than 1.
void vl_gmm_set_posteriors ( VlGMM self,
void *  posteriors,
vl_size  numClusters,
vl_size  numData 
)
Parameters:
selfGMM object instance.
posteriorsinitial values of the posterior probabilities.
numClustersnumber of gaussians.
numClustersnumber of data points.
void vl_gmm_set_sigma_lower_bound ( VlGMM self,
double  lowbound 
)
Parameters:
selfobject
lowboundlower bound on sigma diagonals.
void vl_gmm_set_sigmas ( VlGMM self,
void *  sigmas,
vl_size  numClusters,
vl_size  dimension 
)
Parameters:
selfGMM object instance.
sigmasinitial values of covariance matrix diagonals.
numClustersnumber of sigma matrices.
dimensionnumber of points on the diagonals of the covariance matrices.
void vl_gmm_set_verbosity ( VlGMM self,
int  verbosity 
)
Parameters:
selfobject
verbosityverbosity level.
void vl_gmm_set_weights ( VlGMM self,
void *  weights,
vl_size  numClusters 
)
Parameters:
selfGMM object instance.
weightsinitial values of the gaussian weights.
numClustersnumber of gaussians.