Python package for unsupervised, supervised and semi-supervised self-organizing maps (SOM)
Project description
SuSi: SUpervised Self-organIzing maps in Python
Python package for unsupervised, supervised and semi-supervised self-organizing maps (SOM)
Description
We present the SuSi package for Python. It includes a fully functional SOM for unsupervised, supervised and semi-supervised tasks. The class structure is set up as follows:
SOMClustering: Unsupervised SOM for clustering
SOMEstimator: Base class for supervised and semi-supervised SOMs
SOMRegressor: Regression SOM
SOMClassifier: Classification SOM
- License:
- Author:
- Citation:
- Documentation:
- Installation:
- Paper:
Installation
pip install susi
More information can be found in the installation guidelines.
Examples
A collection of code examples can be found in the documentation. Code examples as Jupyter Notebooks can be found here:
Citation
The bibtex file including both references is available here.
Paper:
F. M. Riese, S. Keller and S. Hinz, “Supervised and Semi-Supervised Self-Organizing Maps for Regression and Classification Focusing on Hyperspectral Data”, Remote Sensing, vol. 12, no. 1, 2020.
@article{riese2020supervised,
author = {Riese, Felix~M. and Keller, Sina and Hinz, Stefan},
title = {{Supervised and Semi-Supervised Self-Organizing Maps for
Regression and Classification Focusing on Hyperspectral Data}},
journal = {Remote Sensing},
year = {2020},
volume = {12},
number = {1},
article-number = {7},
URL = {https://www.mdpi.com/2072-4292/12/1/7},
ISSN = {2072-4292},
DOI = {10.3390/rs12010007}
}
Code:
Felix M. Riese, “SuSi: SUpervised Self-organIzing maps in Python”, 10.5281/zenodo.2609130, 2019.
@misc{riese2019susicode,
author = {Riese, Felix~M.},
title = {{SuSi: SUpervised Self-organIzing maps in Python}},
year = {2019},
DOI = {10.5281/zenodo.2609130},
publisher = {Zenodo},
howpublished = {\href{https://doi.org/10.5281/zenodo.2609130}{doi.org/10.5281/zenodo.2609130}}
}
Change Log
[1.0.8] - 2020-01-20
[FIXED] Replaced scikit-learn sklearn.utils.fixes.parallel_helper, see #12.
[1.0.7] - 2019-11-28
[ADDED] Optional tqdm visualization of the SOM training
[ADDED] New init_mode_supervised called random_minmax.
[CHANGED] Official name of package changes from SUSI to SuSi.
[CHANGED] Docstrings for functions are now according to guidelines.
[FIXED] Semi-supervised classification handling, sample weights
[FIXED] Supervised classification SOM initalization of n_iter_supervised
[FIXED] Code refactored according to prospector
[FIXED] Resolved bug in get_datapoints_from_node() for unsupervised SOM.
[1.0.6] - 2019-09-11
[ADDED] Semi-supervised abilities for classifier and regressor
[ADDED] Example notebooks for semi-supervised applications
[ADDED] Tests for example notebooks
[CHANGED] Requirements for the SuSi package
[REMOVED] Support for Python 3.4
[FIXED] Code looks better in documentation with sphinx.ext.napoleon
[1.0.5] - 2019-04-23
[ADDED] PCA initialization of the SOM weights with 2 principal components
[ADDED] Variable variance
[CHANGED] Moved installation guidelines and examples to documentation
[1.0.4] - 2019-04-21
[ADDED] Batch algorithm for unsupervised and supervised SOM
[ADDED] Calculation of the unified distance matrix (u-matrix)
[FIXED] Added estimator_check of scikit-learn and fixed recognized issues
[1.0.3] - 2019-04-09
[ADDED] Link to arXiv paper
[ADDED] Mexican-hat neighborhood distance weight
[ADDED] Possibility for different initialization modes
[CHANGED] Simplified initialization of estimators
[FIXED] URLs and styles in documentation
[FIXED] Colormap in Salinas example
[1.0.2] - 2019-03-27
[ADDED] Codecov, Codacy
[CHANGED] Moved decreasing_rate() out of SOM classes
[FIXED] Removed duplicate constructor for SOMRegressor, fixed fit() params
[1.0.1] - 2019-03-26
[ADDED] Config file for Travis
[ADDED] Requirements for read-the-docs documentation
[1.0.0] - 2019-03-26
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.