Free Split and Merge Expectation-Maximization algorithm for Multivariate Gaussian Mixtures. This algorithm is suitable to estimate mixture parameters and the number of conpounds
Usage
------
[M , S , P ,logl] = fsmem_mvgm(Z , [option] , [M0] , [S0] , [P0]);
Inputs
------
Z Measurements (d x N)
M0 Initial mean vector. M0 can be (d x 1 x K) (default [Kini random elements from Z])
S0 Initial covariance matrix. S0 can be (d x d x K) (default [cov(Z)/40])
P0 Initial mixture probablities (1 x 1 x K) : (default [1/Kini])
options
Kini Initial number of compounds (default [5])
Kmax Maximum number of compounds (default [15])
maxite_fsmem Number of maximum iteration for the main loop of the fsmem (default [100])
maxite_fullem Number of maximum iteration for the full EM inside the main loop (default [100])
maxite_partialem Number of maximum iteration for the partial EM inside the main loop (default [100])
epsi_fullem Tolerance in loglikelihood improuvement of the Full EM (default [1e-6])
epsi_partialem Tolerance in loglikelihood improuvement of the Partial EM (default [1e-6])
lambda Covariance regularization parameter (default [0.01])
maxcands_split Maximum number of split candidate (default [5])
splitinit_epsi Split Initialisation parameter for the mean of splitted cluster (default [1])
maxcands_merge Maximum number of merge candidate (default [5])
covtype Covariance type : 0 = full , 1 = elliptical , 2 = spherical (default [0])
fail_exit Number of tentatives of split/merge operations before exit. If fail_exit = 0, then FSMEM = EM
Ouputs
-------
M Estimated mean vector (d x 1 x Kest), where Kest is the number of estimated coupounds
S Estimated covariance vector (d x d x Kest)
P Estimated initial probabilities (1 x 1 x Kest)
logl Final loglikelihood
Please run mexme_fsmem_mvgm.m in order to compile mex-files on your own plateform (Be sure than "mex -setup" have been previously)
Please run test_fsmem_mvgm for the demo |