gmm.c File Reference
Gaussian Mixture Models - Implementation. More...
#include "gmm.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mathop_avx.h"
#include "shuffle-def.h"
Functions | |
VlGMM * | vl_gmm_new (vl_type dataType, vl_size dimension, vl_size numComponents) |
Create a new GMM object. | |
void | vl_gmm_reset (VlGMM *self) |
Reset state. | |
void | vl_gmm_delete (VlGMM *self) |
Deletes a GMM object. | |
vl_type | vl_gmm_get_data_type (VlGMM const *self) |
Get data type. | |
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_loglikelihood (VlGMM const *self) |
Get the log likelihood of the current mixture. | |
int | vl_gmm_get_verbosity (VlGMM const *self) |
Get verbosity level. | |
void | vl_gmm_set_verbosity (VlGMM *self, int verbosity) |
Set verbosity level. | |
void const * | vl_gmm_get_means (VlGMM const *self) |
Get means. | |
void const * | vl_gmm_get_covariances (VlGMM const *self) |
Get covariances. | |
void const * | vl_gmm_get_priors (VlGMM const *self) |
Get priors. | |
void const * | vl_gmm_get_posteriors (VlGMM const *self) |
Get posteriors. | |
vl_size | vl_gmm_get_max_num_iterations (VlGMM const *self) |
Get maximum number of iterations. | |
void | vl_gmm_set_max_num_iterations (VlGMM *self, vl_size maxNumIterations) |
Set maximum number of iterations. | |
void | vl_gmm_set_num_repetitions (VlGMM *self, vl_size numRepetitions) |
Set maximum number of repetitions. | |
vl_size | vl_gmm_get_dimension (VlGMM const *self) |
Get data dimension. | |
VlGMMInitialization | vl_gmm_get_initialization (VlGMM const *self) |
Get initialization algorithm. | |
void | vl_gmm_set_initialization (VlGMM *self, VlGMMInitialization init) |
Set initialization algorithm. | |
VlKMeans * | vl_gmm_get_kmeans_init_object (VlGMM const *self) |
Get KMeans initialization object. | |
void | vl_gmm_set_kmeans_init_object (VlGMM *self, VlKMeans *kmeans) |
Set KMeans initialization object. | |
double const * | vl_gmm_get_covariance_lower_bounds (VlGMM const *self) |
Get the lower bound on the diagonal covariance values. | |
void | vl_gmm_set_covariance_lower_bounds (VlGMM *self, double const *bounds) |
Set the lower bounds on diagonal covariance values. | |
void | vl_gmm_set_covariance_lower_bound (VlGMM *self, double bound) |
Set the lower bounds on diagonal covariance values. | |
VlGMM * | vl_gmm_new_copy (VlGMM const *self) |
Create a new GMM object by copy. | |
void | vl_gmm_init_with_rand_data (VlGMM *self, void const *data, vl_size numData) |
Initialize mixture before EM takes place using random initialization. | |
void | vl_gmm_init_with_kmeans (VlGMM *self, void const *data, vl_size numData, VlKMeans *kmeansInit) |
Initializes the GMM using KMeans. | |
double | vl_gmm_cluster (VlGMM *self, void const *data, vl_size numData) |
Run GMM clustering - includes initialization and EM. | |
double | vl_gmm_em (VlGMM *self, void const *data, vl_size numData) |
Invoke the EM algorithm. | |
void | vl_gmm_set_means (VlGMM *self, void const *means) |
Explicitly set the initial means for EM. | |
void | vl_gmm_set_covariances (VlGMM *self, void const *covariances) |
Explicitly set the initial sigma diagonals for EM. | |
void | vl_gmm_set_priors (VlGMM *self, void const *priors) |
Explicitly set the initial priors of the gaussians. | |
Get parameters | |
vl_size | vl_gmm_get_num_repetitions (VlGMM const *self) |
Get maximum number of repetitions. |
Detailed Description
Function Documentation
- Parameters:
-
self GMM object instance. data data points which should be clustered. dimension dimensionality of the data points. numData number of data points. numClusters number of gaussians which should be estimated.
void vl_gmm_delete | ( | VlGMM * | self | ) |
- Parameters:
-
self GMM object instance.
The function deletes the GMM object instance created by vl_gmm_new.
- Parameters:
-
self GMM object instance. data data points which should be clustered. numData number of data points.
double const* vl_gmm_get_covariance_lower_bounds | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- lower bound on covariances.
void const* vl_gmm_get_covariances | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- diagonals of cluster covariance matrices.
vl_type vl_gmm_get_data_type | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- data type.
VlGMMInitialization vl_gmm_get_initialization | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- initialization algorithm.
- Parameters:
-
self object
- Returns:
- kmeans initialization object.
double vl_gmm_get_loglikelihood | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- loglikelihood.
- Parameters:
-
self object
- Returns:
- maximum number of iterations.
void const* vl_gmm_get_means | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- cluster means.
- Parameters:
-
self object
- Returns:
- number of clusters.
- Parameters:
-
self object
- Returns:
- number of data points.
- Parameters:
-
self object
- Returns:
- current number of repretitions for quantization.
void const* vl_gmm_get_posteriors | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- posterior probabilities of cluster memberships.
void const* vl_gmm_get_priors | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- priors of cluster gaussians.
int vl_gmm_get_verbosity | ( | VlGMM const * | self | ) |
- Parameters:
-
self object
- Returns:
- verbosity level.
void vl_gmm_init_with_kmeans | ( | VlGMM * | self, |
void const * | data, | ||
vl_size | numData, | ||
VlKMeans * | kmeansInit | ||
) |
- Parameters:
-
self GMM object instance. data data points which should be clustered. dimension dimensionality of the data points. numData number of data points. numClusters number of gaussians which should be estimated. kmeansInit KMeans object to use.
- Parameters:
-
self GMM object instance. data data points which should be clustered. dimension dimensionality of the data points. numData number of data points. numClusters number of gaussians which should be estimated.
- Parameters:
-
dataType type of data (VL_TYPE_FLOAT or VL_TYPE_DOUBLE)
- Returns:
- new GMM object instance.
- Parameters:
-
self object.
- Returns:
- new copy.
Most parameters, including the cluster priors, means, and covariances are copied. Data posteriors (available after initalization or EM) are not; nor is the KMeans object used for initialization, if any.
void vl_gmm_reset | ( | VlGMM * | self | ) |
- Parameters:
-
self object.
The function reset the state of the GMM object. It deletes any stored posterior and other internal state variables.
void vl_gmm_set_covariance_lower_bound | ( | VlGMM * | self, |
double | bound | ||
) |
- Parameters:
-
self object. bound bound.
While there is one lower bound per dimension, this function sets all of them to the specified scalar. Use ::vl:gmm_set_covariance_lower_bounds to set them individually.
void vl_gmm_set_covariance_lower_bounds | ( | VlGMM * | self, |
double const * | bounds | ||
) |
- Parameters:
-
self object. bounds bounds.
There is one lower bound per dimension. Use ::vl:gmm_set_covariance_lower_bound to set all of them to a given scalar.
void vl_gmm_set_covariances | ( | VlGMM * | self, |
void const * | covariances | ||
) |
- Parameters:
-
self GMM object instance. covariances initial values of covariance matrix diagonals.
void vl_gmm_set_initialization | ( | VlGMM * | self, |
VlGMMInitialization | init | ||
) |
- Parameters:
-
self object init initialization algorithm.
- Parameters:
-
self object kmeans initialization KMeans object.
- Parameters:
-
self VlGMM filter. maxNumIterations maximum number of iterations.
void vl_gmm_set_means | ( | VlGMM * | self, |
void const * | means | ||
) |
- Parameters:
-
self GMM object instance. means initial values of means.
- Parameters:
-
self object numRepetitions maximum number of repetitions. The number of repetitions cannot be smaller than 1.
void vl_gmm_set_priors | ( | VlGMM * | self, |
void const * | priors | ||
) |
- Parameters:
-
self GMM object instance. priors initial values of the gaussian priors.
void vl_gmm_set_verbosity | ( | VlGMM * | self, |
int | verbosity | ||
) |
- Parameters:
-
self object verbosity verbosity level.