Milk: Machine Learning Toolkit for Python
luispedro.org
luispedro.org
(I'm the author of this package).
How does your k-means implementation compare to that of scipy's?
Why not push your code as modules into scikits.learn? Their library is designed to be many loosely coupled components.
Other projects have other priorities/functionality.
I like my interfaces better too, but I might be biased by being so much more familiar with them.
"""How does your k-means implementation compare to that of scipy's?"""
I think that my code is faster: http://bit.ly/e8VOXy and it is probably more scalable.
Scikits.learn has more functionality in certain aspects. So, if you need those, use it. I started milk when there was no scikits.learn. The interfaces are different and they work together here.
https://github.com/luispedro/milk
The main documentation for the package is actually at:
@luispedro I did not see your reply, hence the duplication. I see that Milk isnt doing too well on pca (11 times slower than the best performer). From the code it seems you are importing numpy.linalg. I think if you import scipy.linalg your results will be better without any change to the algorithm (unless you have built numpy with ATLAS or MKL).
Scipy.linalg links with underlying BLAS if its avaliable whereas the standard build of numpy implements linalg on its own (but it is possible to override that). Second point, I think for large data sets you are better of giving an api for computing an user specified number of principal components rather than all of them. Thirdly, if you find limiting yourself to gcc not too restrictive, you can stick with stl style algos in place of c++ looping. The advantage is that you will get parallelism for free http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode...
Thanks for the tips. I know that the PCA implementation is very naïve, but I never put as much work into it as into some of the other parts of the library.
- Pybrain (http://pybrain.org/)
- Theano/Pylearn (http://deeplearning.net/software/pylearn/ / http://deeplearning.net/software/theano/)
- Orange (http://orange.biolab.si/)
- Pyevolve (http://pyevolve.sourceforge.net/)
There are many machine learning libraries for Python these days, all subtly different in which methods they support. I guess that's good :)