Dimensionality reduction: Refactoring the manifold module

It’s been a while since I last blogged about manifold learning. I don’t think I’ll add much in terms of algorithms to the scikit, but now that a clear API is being defined (http://sourceforge.net/apps/trac/scikit-learn/wiki/ApiDiscussion), it’s time for the manifold module to comply to it. Also, documentation will be enhanced and some dependencies will be removed.

I’ve started a branch available on github.com, and I will some examples in the scikit as well. I may explain them here, but I won’t rewrite what is already published. A future post will explain the changes, and I hope that interested people will understand the modifications and apply them to my former posts. It’s just that I don’t have much time to change everything…

3 thoughts on “Dimensionality reduction: Refactoring the manifold module”

  1. Hi,

    Congratulation on your code, it does not seem fast, but it works great!

    It took me a long time to find how to access your code, you should have advertised it much more. Especially considering all the troubles to get your work included in the official scikit.learn release.

    It is downloadable from there:
    https://github.com/scikit-learn/scikit-learn/tree/5b01d58fdbd2cab23ef7f912ab1b552b7f6aa866

    (I did not see your code in the link on your blogpost)

    As I did not find how to visualize 3D data in Python, I wrote a Python-VTK module for this. Here is the output of your Isomap compression visualized with it: http://www.doc.ic.ac.uk/~kpk09/mbrucher_swissroll.png
    and you can download the code from:
    http://www.doc.ic.ac.uk/~kpk09/vtk2views.zip

    The swissroll.compressed.pickled is the outptut of “scikits/learn/manifold/examples/compression.py”, asking for 3 coordinates. For the visualization, you can run:
    ./vtk2views.py swissroll.pickled swissroll.compressed.pickled

    I saw in your movies that you did 3D plots, if you still have some code examples for it, I would be glad to have a look.

    Thanks a lot, your code was a great help to understand what Manifold Learning was about, and moreover, we used your swissroll data as test data in our project:
    http://www.doc.ic.ac.uk/~kpk09/facecrumbs.html

    Kind regards,

    Kevin Keraudren

    1. Hi Kevin,

      Thanks for the comments 😉 I agree it is not very fast (that was one of the hotspots during the discussion of the inclusion inside scikits.learn), I just didn’t have the time to optimize it like it should have been. It is still a hotspot for the scikits.learn guys.

      I used Matplotlib to visualize 3D data, but VTK is also a very good option (nice pictures BTW). I think I put an example in the manifold-light branch, inside the examples folder (I don’t have anything else left, I’m sorry). I hope that there may be examples with Mayavi in a future release of scikits.learn.

      Regards,

Leave a Reply