EM algorithm for Gaussian mixture model with background noise

Version (3.07 KB) by Andrew
Standard EM algorithm to fit a GMM with the (optional) consideration of background noise.


Updated Wed, 16 May 2012 16:31:50 +0000

View License

This is the standard EM algorithm for GMMs, presented in Bishop's book "Pattern Recognition and Machine Learning", Chapter 9, with one small exception, the addition of a uniform distribution to the mixture to pick up background noise/speckle; data points which one would not want to associate with any cluster.

NOTE: This function requires the MATLAB Statistical Toolbox and, for plotting the ellipses, the function error_ellipse, available from http://www.mathworks.com/matlabcentral/fileexchange/4705. Also requires at least MATLAB 7.9 (2009b)

For a demo example simply run GM_EM();
Plotting is provided automatically for 1D/2D cases with 5 GMs or less.

Usage: % GM_EM - fit a Gaussian mixture model to N points located in n-dimensional space.
% GM_EM(X,k) - fit a GMM to X, where X is N x n and k is the number of
% clusters. Algorithm follows steps outlined in Bishop
% (2009) 'Pattern Recognition and Machine Learning', Chapter 9.

% Optional inputs
% bn_noise - allow for uniform background noise term ('T' or 'F',
% default 'T'). If 'T', relevant classification uses the
% (k+1)th cluster
% reps - number of repetitions with different initial conditions
% (default = 10). Note: only the best fit (in a likelihood sense) is
% returned.
% max_iters - maximum iteration number for EM algorithm (default = 100)
% tol - tolerance value (default = 0.01)

% Outputs
% idx - classification/labelling of data in X
% mu - GM centres

Cite As

Andrew (2023). EM algorithm for Gaussian mixture model with background noise (https://www.mathworks.com/matlabcentral/fileexchange/36721-em-algorithm-for-gaussian-mixture-model-with-background-noise), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: EM Algorithm for Gaussian Mixture Model (EM GMM)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

made help file more readable