Skip to main content

Python package for unsupervised, supervised and semi-supervised self-organizing maps (SOM)

Project description

PyPi - Code Version PyPI - Python Version PyPI - License Travis.CI Status Documentation Status Codecov Codacy Badge

SuSi: Supervised Self-organizing maps in Python

Python package for unsupervised, supervised and semi-supervised self-organizing maps (SOM)


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


3-Clause BSD license


Felix M. Riese


see Citation and in the bibtex file




Installation guidelines


F. M. Riese, S. Keller and S. Hinz in Remote Sensing, 2020


pip install susi

More information can be found in the installation guidelines.


A collection of code examples can be found in the documentation. Code examples as Jupyter Notebooks can be found here:



The bibtex file including both references is available here.


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.

    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 = {},
    ISSN = {2072-4292},
    DOI = {10.3390/rs12010007}


Felix M. Riese, “SuSi: SUpervised Self-organIzing maps in Python”, 10.5281/zenodo.2609130, 2019.
    author = {Riese, Felix~M.},
    title = {{SuSi: Supervised Self-Organizing Maps in Python}},
    year = {2019},
    DOI = {10.5281/zenodo.2609130},
    publisher = {Zenodo},
    howpublished = {\href{}{}}

Change Log

[1.0.9] - 2020-04-07

  • [ADDED] Documentation of the hyperparameters.

  • [ADDED] Plot scripts.

  • [CHANGED] Structure of the module files.

[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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (29.9 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page