get_independent_GMM - Finds a Gaussian mixture model (GMM).


#include "r/r_cluster.h"

Example compile flags (system dependent):
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 

int get_independent_GMM
	int num_clusters,
	const Matrix *feature_mp,
	Vector **a_vpp,
	Matrix **u_mpp,
	Matrix **var_mpp,
	Matrix **P_mpp


This routine finds a Gaussian mixture model (GMM) for the data on the assumption that the features are independent. The model is fit with EM. Some features are controlled via the set facility. In particular, it fits:
         p(x) = sum  a-sub-i *  g(u-sub-i, v-sub-i, x)
where a-sub-i is the prior probability for the mixuture compoenent (cluster), u-sub-i is the mean vector for component i, v-sub-i is the variance for the component, and g(u,v,x) is a Gaussian with diagonal covariance (i.e., the features are assumed to be independent, given the cluster). The argument num_clusters is the number of requested mixture compoenent (clusters), K. The data matrix feature_mp is an N by M matrix where N is the number of data points, and M is the number of features. The model parameters are put into *a_vpp, *u_mpp, and *v_mpp. Any of a_vpp, u_mpp, or v_mpp is NULL if that value is not needed. Both u-sub-i and v-sub-i are vectors, and they are put into the i'th row of *u_mpp and *v_ppp, respectively. The matrices are thus K by M. If P_mpp, is not NULL, then the soft clustering (cluster membership) for each data point is returned. In that case, *P_mpp will be N by K.


If the routine fails (due to storage allocation), then ERROR is returned with an error message being set. Otherwise NO_ERROR is returned.


This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.


Kobus Barnard


Kobus Barnard


set_em_cluster_options , get_independent_GMM_using_CEM , get_independent_GMM_with_shift , get_independent_GMM_with_shift_2 , get_GMM_blk_compound_sym_cov , get_GMM_blk_compound_sym_cov_1