get_independent_GMM - Finds a Gaussian mixture model (GMM).
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
const Matrix *feature_mp,
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
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.