manifold learning tools?

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

manifold learning tools?

Zachary Pincus-2
Hello,

In googling around for manifold learning tools in python  
(specifically, diffusion maps a la Lafon and Coifman), I see a couple  
references on Stéfan and Matthieu's web pages, but I'm not sure if  
anyone has released anything.

Do you two, or does anyone else, know of any code out there for the  
basic techniques (isomap / LLE / diffusion maps / etc...)?

No big problem to re-implement... but if the code's already written,  
I'd start with that!

Thanks a ton!
Zach
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

apalomba
I am very interested in this as well. An orbifold implementation
would be welcome too.



-ap


On Thu, Feb 10, 2011 at 4:05 PM, Zachary Pincus <[hidden email]> wrote:
Hello,

In googling around for manifold learning tools in python
(specifically, diffusion maps a la Lafon and Coifman), I see a couple
references on Stéfan and Matthieu's web pages, but I'm not sure if
anyone has released anything.

Do you two, or does anyone else, know of any code out there for the
basic techniques (isomap / LLE / diffusion maps / etc...)?

No big problem to re-implement... but if the code's already written,
I'd start with that!

Thanks a ton!
Zach
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user


_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Matthieu Brucher-2
In reply to this post by Zachary Pincus-2
Hi,

The code for LLE (I think this one has a bug), Isomap, Diffusion maps, ... is available in the first release of scikits.learn. You may also find it in some branches of the project, mainly Fabian or Alexandre's manifold-light (with a fixed LLE, but no Isomap). I don't have time to finish the port to the current scikit's API, and it takes too long to have something like it integrated anyway.

Matthieu

2011/2/10 Zachary Pincus <[hidden email]>
Hello,

In googling around for manifold learning tools in python
(specifically, diffusion maps a la Lafon and Coifman), I see a couple
references on Stéfan and Matthieu's web pages, but I'm not sure if
anyone has released anything.

Do you two, or does anyone else, know of any code out there for the
basic techniques (isomap / LLE / diffusion maps / etc...)?

No big problem to re-implement... but if the code's already written,
I'd start with that!

Thanks a ton!
Zach
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user



--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Zachary Pincus-2
> The code for LLE (I think this one has a bug), Isomap, Diffusion  
> maps, ... is available in the first release of scikits.learn. You  
> may also find it in some branches of the project, mainly Fabian or  
> Alexandre's manifold-light (with a fixed LLE, but no Isomap). I  
> don't have time to finish the port to the current scikit's API, and  
> it takes too long to have something like it integrated anyway.

Oh great, thanks! I poked around the scikits.learn repo a bit but must  
have missed those -- sorry. I'll check that out in more detail.

Zach
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Tiziano Zito-2
In reply to this post by Zachary Pincus-2
> In googling around for manifold learning tools in python  
> (specifically, diffusion maps a la Lafon and Coifman), I see a couple  
> references on Stéfan and Matthieu's web pages, but I'm not sure if  
> anyone has released anything.
>
> Do you two, or does anyone else, know of any code out there for the  
> basic techniques (isomap / LLE / diffusion maps / etc...)?

LLE [1] and Hessian-LLE [2] are available in MDP [3]. You may be
interested in Growing Neural Gas [4] too.

hth,
tiziano

[1] http://mdp-toolkit.sourceforge.net/node_list.html#mdp.nodes.LLENode
[2] http://mdp-toolkit.sourceforge.net/node_list.html#mdp.nodes.HLLENode
[3] http://mdp-toolkit.sourceforge.net/
[4] http://mdp-toolkit.sourceforge.net/node_list.html#mdp.nodes.GrowingNeuralGasNode

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Stéfan van der Walt
In reply to this post by Zachary Pincus-2
On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
<[hidden email]> wrote:
> Oh great, thanks! I poked around the scikits.learn repo a bit but must
> have missed those -- sorry. I'll check that out in more detail.

I looked at the docs for scikits.learn now, but it doesn't seem as
though one can specify the diffusion map kernel?  Either way, the code
for this is literally about 20 lines (attached).  Note that 'eigen' is
known as 'eigs' in the latest scipy RC.

Regards
Stéfan

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user

difmap.py (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Zachary Pincus-2
Cool -- thanks a ton!


On Feb 14, 2011, at 10:58 AM, Stéfan van der Walt wrote:

> On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
> <[hidden email]> wrote:
>> Oh great, thanks! I poked around the scikits.learn repo a bit but  
>> must
>> have missed those -- sorry. I'll check that out in more detail.
>
> I looked at the docs for scikits.learn now, but it doesn't seem as
> though one can specify the diffusion map kernel?  Either way, the code
> for this is literally about 20 lines (attached).  Note that 'eigen' is
> known as 'eigs' in the latest scipy RC.
>
> Regards
> Stéfan
> <difmap.py>_______________________________________________
> SciPy-User mailing list
> [hidden email]
> http://mail.scipy.org/mailman/listinfo/scipy-user

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Gael Varoquaux
In reply to this post by Stéfan van der Walt
On Mon, Feb 14, 2011 at 05:58:50PM +0200, Stéfan van der Walt wrote:
> On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
> <[hidden email]> wrote:
> > Oh great, thanks! I poked around the scikits.learn repo a bit but must
> > have missed those -- sorry. I'll check that out in more detail.

> I looked at the docs for scikits.learn now, but it doesn't seem as
> though one can specify the diffusion map kernel?

Which code are you refeering to exactly?

In the code I know, you have to apply it yourself. However, this code is
still fairly barebones, and will need more work, in particular to define
good APIs. This will happen when we merge in the manifold module (give it
a month).

The code for diffusion maps is indeed fairly short, but in the scikit we
play all the tricks we can to be numerically efficient (and they are not
always trivial).

Gaël
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Matthieu Brucher-2
In reply to this post by Stéfan van der Walt


2011/2/14 Stéfan van der Walt <[hidden email]>
On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
<[hidden email]> wrote:
> Oh great, thanks! I poked around the scikits.learn repo a bit but must
> have missed those -- sorry. I'll check that out in more detail.

I looked at the docs for scikits.learn now, but it doesn't seem as
though one can specify the diffusion map kernel?  Either way, the code
for this is literally about 20 lines (attached).  Note that 'eigen' is
known as 'eigs' in the latest scipy RC.

Indeed, because the diffusion kernel is hardcoded for diffusion map. The inner computation function can be passed a kernel though (sparse like Laplacian Eigenmaps or not sparse like Diffusion Map).

Matthieu
--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

apalomba
Forgive me, but I am new to the whole world of manifolds. My goal
is to come up with a working implementation of an orbit manifold
in python that I can experiment with.

Would scikits.learn allow me to do that? Is a diffusion map the same
thing as a manifold?

Sorry again if these seem like silly questions, I am trying to get my
head around what I need to learn in order to make this happen.

Any pointers to manifold learning resources would greatly
appreciated.



Thanks,
Anthony



On Mon, Feb 14, 2011 at 10:38 AM, Matthieu Brucher <[hidden email]> wrote:


2011/2/14 Stéfan van der Walt <[hidden email]>

On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
<[hidden email]> wrote:
> Oh great, thanks! I poked around the scikits.learn repo a bit but must
> have missed those -- sorry. I'll check that out in more detail.

I looked at the docs for scikits.learn now, but it doesn't seem as
though one can specify the diffusion map kernel?  Either way, the code
for this is literally about 20 lines (attached).  Note that 'eigen' is
known as 'eigs' in the latest scipy RC.

Indeed, because the diffusion kernel is hardcoded for diffusion map. The inner computation function can be passed a kernel though (sparse like Laplacian Eigenmaps or not sparse like Diffusion Map).

Matthieu

--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user



_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Jonathan Rocher
Hi Anthony,

I don't know exactly what you need to learn about manifolds but I can recommend a well written and rigorous book called geometry, topology and physics by Nakahara
http://www.amazon.com/Geometry-Topology-Physics-Graduate-Student/dp/0750306068

It provides good definitions of these and related concepts. Probably worth having a look if you can get to a copy....

Hope this helps.
Jonathan

On Mon, Feb 14, 2011 at 2:18 PM, Anthony Palomba <[hidden email]> wrote:
Forgive me, but I am new to the whole world of manifolds. My goal
is to come up with a working implementation of an orbit manifold
in python that I can experiment with.

Would scikits.learn allow me to do that? Is a diffusion map the same
thing as a manifold?

Sorry again if these seem like silly questions, I am trying to get my
head around what I need to learn in order to make this happen.

Any pointers to manifold learning resources would greatly
appreciated.



Thanks,
Anthony



On Mon, Feb 14, 2011 at 10:38 AM, Matthieu Brucher <[hidden email]> wrote:


2011/2/14 Stéfan van der Walt <[hidden email]>

On Fri, Feb 11, 2011 at 12:16 AM, Zachary Pincus
<[hidden email]> wrote:
> Oh great, thanks! I poked around the scikits.learn repo a bit but must
> have missed those -- sorry. I'll check that out in more detail.

I looked at the docs for scikits.learn now, but it doesn't seem as
though one can specify the diffusion map kernel?  Either way, the code
for this is literally about 20 lines (attached).  Note that 'eigen' is
known as 'eigs' in the latest scipy RC.

Indeed, because the diffusion kernel is hardcoded for diffusion map. The inner computation function can be passed a kernel though (sparse like Laplacian Eigenmaps or not sparse like Diffusion Map).

Matthieu

--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user



_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user




--
Jonathan Rocher,
Enthought, Inc.
[hidden email]
1-512-536-1057
http://www.enthought.com



_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: manifold learning tools?

Matthieu Brucher-2
In reply to this post by apalomba


2011/2/14 Anthony Palomba <[hidden email]>
Forgive me, but I am new to the whole world of manifolds. My goal
is to come up with a working implementation of an orbit manifold
in python that I can experiment with.

Would scikits.learn allow me to do that? Is a diffusion map the same
thing as a manifold?

Diffusion map are one way of defining a set of coordinates on a manifold. I don't know what an orbit manifold is, if it is a specific algorithm, or if you just want to have a coordinate system on an orbit...

Matthieu
--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user