Free Split and Merge Expectation Maximization for MultiVaria
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
Cite As
Sebastien PARIS (2024). Free Split and Merge Expectation Maximization for MultiVaria (https://www.mathworks.com/matlabcentral/fileexchange/22711-free-split-and-merge-expectation-maximization-for-multivaria), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- AI and Statistics > Statistics and Machine Learning Toolbox > Cluster Analysis and Anomaly Detection > Gaussian Mixture Models >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
2.1 | Fixed for modern Matlab & OS64 |
||
2.0 | Bug fixes in description/online help |
||
1.13.0.0 | -Correct typo in the header of fsmem_mvgm.c |
||
1.12.0.0 | -Fix a bug when true number of conpounds is unity, thanks to Jonathan. |
||
1.11.0.0 | -change input/output parsing
|
||
1.10.0.0 | -Minor changes |
||
1.9.0.0 | - Fix a bug in parsing inputs |
||
1.8.0.0 | -Minor changes |
||
1.7.0.0 | -Fixed bug for Linux64 and GCC |
||
1.6.0.0 | - Improve description and mexme_fsmem_mvgm
|
||
1.5.0.0 | Minor code cleaning and should compile on non-C99 compiler |
||
1.4.0.0 | - add options.Kmin
|
||
1.2.0.0 | Correct a bug in likelihood_mvgm.c when d=1 |
||
1.1.0.0 | -Add HTML file report |
||
1.0.0.0 |