Hi,

For those who want to use manifold learning tools, I'm happy to announce that scikits.learn has now an implementation of the usual techniques. They may not all work (I'm in the process of testing them and fixing the porting issues) at the moment, but they will in the near future.

What's inside ?

- compression is where the usual techniques are located (PCA by Zachary Pincus, Isomap, LLE, Laplacian Eigenmaps, Hessian Eigenmaps, Diffusion maps, CCA and my own technique). Only the dimensionality reduction is done here, that is original space to a reduced space.

- regression is a set of multidimensional regression tools that will generate a model between the reduced space to the original space. Here is a linear model (called PCA, because it is generally used in conjunction with PCA) and a piecewise linear model

- projection will enable the projection on a new point on the manifold with the help of the model.

No Nyström extension at the moment, but perhaps some one will create a regression model based on this.

Some techniques create a reduced space and a model at the same time (with a fixed number of linear models, like Brandt's one), I did not implement them, but they could benefit from the projection module.

I will add a tutorial on the scikits trac when I have some time, with details on the interfaces that can be used and reused.

Here is a small test for people who want to test it right now. Suppose you have an array with 1000 points in a 3D space (so a 1000x3 array) :

>>> from scikits.learn.machine.manifold_learning import compression

>>> coords = compression.isomap(test, 2, neighbors=9)

Here the Isomap algorithm was used, the test array was reduced from 3D to 2D, and the number of neighbors used to create the neighbors graph was 9 (in fact |point + number of neighbors| = 9, this may need some fixes).

The TP does not need an additional scikit, only numpy and scipy (trunk) and optionally scikits.openopt (trunk) for CCA, my reduction technique and the projections (if needed).

Matthieu

--

French PhD student

Website : <a href="http://matthieu-brucher.developpez.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://matthieu-brucher.developpez.com/

Blogs : <a href="http://matt.eifelle.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://matt.eifelle.com and <a href="http://blog.developpez.com/?blog=92" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://blog.developpez.com/?blog=92

LinkedIn : <a href="http://www.linkedin.com/in/matthieubrucher" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.linkedin.com/in/matthieubrucher

_______________________________________________

SciPy-user mailing list

[hidden email]
http://projects.scipy.org/mailman/listinfo/scipy-user