Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modified LLE? #71

Open
lucapinello opened this issue May 5, 2017 · 8 comments
Open

Modified LLE? #71

lucapinello opened this issue May 5, 2017 · 8 comments

Comments

@lucapinello
Copy link

Fantastic library!

Would it be possible to have the modified version of the LLE implemented in sklearn?
http://scikit-learn.org/stable/modules/generated/sklearn.manifold.LocallyLinearEmbedding.html

@mmp2
Copy link
Owner

mmp2 commented May 5, 2017 via email

@jmcq89
Copy link
Collaborator

jmcq89 commented May 5, 2017

Hi Lucapinello,

As you've noticed we currently only support standard LLE rather than modified LLE or HLLE. This is something we can definitely support in the future but will need to take the time to implement it carefully.

If this is something you're interested in implementing yourself feel free to put out a pull request other wise we can add it to the list of methods to add.

Cheers,
James

@lucapinello
Copy link
Author

lucapinello commented May 5, 2017

Wow thanks for the super quick reply! I have used your implementation of the modified LLE in sklearn for some biological datasets and it works really well. The problem is that there I don't have the radius options. Marina if you have a simple implementation of the modified LLE with the radius that would be perfect! James I am not sure I am capable to implement it myself in a reasonable time, but happy to test it!

@jmcq89
Copy link
Collaborator

jmcq89 commented May 5, 2017

Unfortunately Modified LLE (MHLLE: https://papers.nips.cc/paper/3132-mlle-modified-locally-linear-embedding-using-multiple-weights.pdf) is a non-trivial modification of normal LLE (which is included in megaman).

As you've noted sklearn only offers a K-nearest neighbors matrix whereas we prefer a radius neighbors matrix -- for geometric reasons. Adjusting the sklearn code/adding MLLE to megaman to use a radius based kernel would require substantial amount of programming time to implement and ensure validity etc.

What is the timeline for your project? It is unlikely that I, personally, will be able to implement this this month as I also have my thesis defense, but it's possible we could find another contributor to do this or I can work on this towards June.

@lucapinello
Copy link
Author

James of course! Your defense is the most important thing. I can definetively wait and if you want when you have time tell you more about the use case we have in mind (single cell genomics data). Thanks again to you and Marina for the quick reply.

@huidongchen
Copy link

Hi, James and Marina,

Awesome package! I'm co-working with Luca. Thanks a lot for you guys quick reply. We are very excited to implement your tool in our RNA-seq data analysis.

We tried LLE but it seems the result looks different from the normal LLE of scikit-learn package with the same parameters. We are not sure whether we missed some parts in it. I attached the sample data and .ipynb file we are using. We would really appreciate it if you can take a look when you have time. Many thanks!

Example.zip

@mmp2
Copy link
Owner

mmp2 commented May 6, 2017 via email

@huidongchen
Copy link

Hi, Marina,

Thanks for your detailed comments and suggestion. It's really helpful!

I have another quick question, we noticed that for the Geometry class, the neighbor number can be set like "adjacency_kwds = {'n_neighbors':20}" . We are kind of confused since LLE of Megaman is based on radius instead of neighbor number. Thats why we were hoping to see the similar result as LLE of scikit-learn shows when we set the same neighbor number. So can I understand it as the radius still being used even if we set the neighbor number ?

Thanks again for your kind and patient help.

Best,
Huidong

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants