Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[MRG] Creating SOM(Self-Organizing Maps) algorithm #9770

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

Closed
wants to merge 22 commits into from

Conversation

njali2001
Copy link

Creating SOM (Self-Organizing Map) algorithm for scikit-learn community.

As a type of artificial neural network, SOM is trained using unsupervised learning to produce a low-dimensional, discretized representation of the input space of the training samples.

I wish my research and contribution could help others who are interested in this field.

@jnothman
Copy link
Member

Thank you. We've previously had SOM contributed at #39 and #2996.

Gaël previously responded:

It's a somewhat standard method, so in theory yes [we would be interested in having it in sklearn). However, it is also getting old, and isn't used much anymore, so I am not super excited about the idea. I think that to get in, someone would have to demonstrate that it produces useful results on data without too much work.
I don't know a lot about SOM, but last time I looked the implementations that I saw required a topology between samples. It was clear to me how to set it outside a few specific situations.

You need to show that this is beneficial to have in addition to the other clustering and manifold learning algorithms in scikit-learn.

See also Olivier's similar critique and the subsequent conversation.

I think we would rather see @naught101's work, or this, go into scikit-learn-contrib than into the main library.

We will certainly not accept a dependency on statsmodels.

@agramfort
Copy link
Member

@njali2001 I think should aim for a scikit-learn-contrib for this.

please close if you're ok with it.

@njali2001
Copy link
Author

I am discussing it with my professor these days, will response it by the end of tomorrow.
Thanks for your concern.

@njali2001
Copy link
Author

Hi Joel and Alexandre

@jnothman @agramfort Thank you for your email. You mentioned that you had previous submissions of SOM packages, however, none of them seem to be available in the current release of scikit-learn.
Even though SOMs are considered “old” by some of your peers in the discussion groups you pointed me to, SOM is at the center of a vibrant research community and I think that scikit-learn should support that community. Here is just a sampling of paper published using SOM just in 2017 alone
Boreal Summer Intraseasonal Phases Identified by Nonlinear Multivariate Empirical Orthogonal Function–Based Self-Organizing Map (ESOM) Analysis (JE Chu, B Wang, JY Lee, KJ Ha - Journal of Climate, 2017 - journals.ametsoc.org)
A Visual Measure of Changes to Weighted Self-Organizing Map Patterns (Y Chung, J Gudmundsson, M Takatsuka - arXiv preprint arXiv:1703.08917, 2017 - arxiv.org)
A self organizing map optimization based image recognition and processing model for bridge crack inspection (JH Chen, MC Su, R Cao, SC Hsu, JC Lu - Automation in Construction, 2017 – Elsevier)
There are literally hundreds of papers available of active research being performed just by looking at Google.
SOMs are no longer confined to the fairly narrow view of topological mapping. Please see the paper published by my thesis advisor on statistical quality measures:
SOM Quality Measures: An Efficient Statistical Approach, Lutz Hamel, Proceedings of the 11th International Workshop WSOM 2016, Houston, Texas USA, E. Merenyi et al. (eds.), Advances in Self-Organizing Maps and Learning Vector Quantization, Advances in Intelligent Systems and Computing 428, Springer, pp 49-59, DOI 10.1007/978-3-319-28518-4_4, 2016.
The idea behind this approach is that the statistical foundation of these quality measures put SOMs a statistical sound footing and let the user work with SOMs in the same sense as k-means or any other clustering technique.
I would hope you will appreciate the research that went into this this package: it is NOT just another implementation of Kohonen’s algorithm but supports advanced features that make building and interpreting SOMs straight forward and turns SOMs into useful statistical tools.
I hope you will reconsider our submission and I am happy to answer any other questions you might have.

Kind Regards,

Li Yuan

@agramfort
Copy link
Member

agramfort commented Sep 18, 2017 via email

@njali2001
Copy link
Author

Hi Alexandre,

Thanks for your message, I will heading to scikit-learn-contrib now.

Li

@njali2001 njali2001 closed this Sep 25, 2017
@njali2001 njali2001 deleted the som branch September 25, 2017 18:11
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

Successfully merging this pull request may close these issues.

3 participants