It is an iterative algorithm used to estimate the parameters of a Gaussian Mixture Models. The algorithm alternates between two steps:

  1. E-step: Calculates the posterior probabilities (responsibilities) of each data point belonging to each Gaussian component.
  2. M-step: Uses these responsibilities to re-calculate the GMM parameters (weights, means, and covariances).