14
$\begingroup$

There seem to be several options available for working with Gaussian Mixture Models (GMMs) in Python. At first glance there are at least:

  • PyMix: Tools for mixture modeling
  • PyEM [dead link], which is part of the Scipy toolbox and seems to focus on GMMs
    Update: Now known as sklearn.mixture .
  • PyPR: pattern recognition and related tools including GMMs

... and perhaps others. They all seem to provide the most basic needs for GMMs, including creating and sampling, parameter estimation, clustering, etc.

What's the difference between them, and how should one go about determining which is best suited for a particular need?

Ref: Topical software on SciPy.org.

$\endgroup$
4
  • $\begingroup$ You could try profiling a really simple version of image compression using GMMs. Given an image use a GMM to assign the pixels different probabilities and then recreate the image by using the probabilities as indices for the particular Gaussian that a particular pixel was most likely to have come from. $\endgroup$ Feb 27, 2012 at 3:18
  • $\begingroup$ @cpcloud -- Do you mean: set up a simplified experiment to execute in each of these packages, as a point of comparison? Well, okay, but that's no small amount of effort. I am hoping for some input from people who have used these packages. $\endgroup$
    – Aman
    Feb 27, 2012 at 3:47
  • 2
    $\begingroup$ Scikit-learn is a popular machine learning library that also has some GMM support. I am not sure it fits your needs but it has the benefit of having other learning algorithms and framework (e.g. cross-validation, model composition). $\endgroup$
    – Bitwise
    Apr 6, 2013 at 2:56
  • $\begingroup$ PyPR and PyEM are only available for Python 2, and no longer seem to be under active development. PyMix looks like the best choice. $\endgroup$ Sep 8, 2016 at 21:05

1 Answer 1

3
$\begingroup$

I do not know how to determine in general which one is best, but if you know your application setting well enough, you can simulate data and try the packages on these simulation. Success metrics could be the time that the estimation take and the quality of recovery of your simulated ground truth.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.