[SciPy-dev] PyEM, toolbox for Expectation Maximization for Gaussian Mixtures (proposal for inclusion into scipy.sandbox)

David Cournapeau david at ar.media.kyoto-u.ac.jp
Fri Oct 6 10:32:13 CDT 2006


Albert Strasheim wrote:
>
> +1. The sandbox already has my libsvm wrapper, but it's a bit limited by
> libsvm's sparse data structure -- an SVM implementation using NumPy arrays
> is the next logical step. There's also PyKF[1], but it doesn't seem to be
> actively maintained.
>   
I believe that pure python versions of algorithms is really important, 
at least for educational purpose. I myself implement a lot of algorithms 
to familiarize myself with them, and it is sometimes frustrating not to 
have simple reference implementations available for algorithms as basic 
as EM.

I was hoping more collaboration, too. For example, PyEM includes code to 
compute multivariate Gaussian densities and evaluation of confidence 
ellipsoids with custom level.  Also, two years ago, I developed a quite 
efficient and small C library for EM (handling full covariance cases if 
clapack is available), which I would be happy to include in PyEM. In 
particular, it can estimate Gaussian densities with any kind of 
covariance matrices, and it would be stupid that other packages roll 
their own (I didn't try to include it in the stats package because it 
lacks most of the function required, and I don't think this is that 
useful to implement all those functions). This could be then used for 
all algorithms requiring this function (Kalman filtering, Recursive EM, 
HMM with Gaussian output, etc...)
> [1] http://pykf.sourceforge.net/
>   
I stopped looking at PYKF because the code is GPL (it also uses numeric, 
which I am not familiar with). We may ask the author to re-release the 
code under a scipy-friendly  license, though (I did that for PyEM, as 
initially it was quite heavily inspired by a GPL matlab toolbox).

I have code for basic Kalman  filtering (for now, it has roughly the 
same features as the Kevin Murphy toolbox on Kalman filtering: 
http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html), but I am not 
sure I will expand it much further.

David


More information about the Scipy-dev mailing list