Skip to main content

NeuralMap is a data analysis tool based on Self-Organizing Maps

Project description

NeuralMap

NeuralMap is a data analysis tool to generate a discrete, low-dimensional representation of the input data space using the Self Organizing Maps algorithm.

This tool supports a wide range of configurations:

  • Custom distance metric
  • Hexagonal or square arrangement
  • Toroidal or flat topology
  • Custom radius or learning rate decay functions
  • Custom neighbourhood functions

After training a NeuralMap instance, you will be able to get useful information about your data, by mapping observations to the SOM, watching the features distribution over the map, analysing a dataset to get the quantization error, activation frequency and mean distance for each node, and evaluating the SOM.

Since the use of SOM for clustering is very spread, this tool employs some common clustering algorithms:

And also includes several highly customizable visualization methods, some of them based on the Relative Positions technique to improve the interpretability of results and clusters recognition.

Installation

NeuralMap has the following requirements:

  • python >= 3.6
  • numpy 1.18.3
  • numba 0.50.1
  • scikit_learn_extra 0.1.0b2
  • matplotlib 3.2.1
  • scipy 1.4.1
  • hdbscan 0.8.26
  • scikit_learn 0.23.2

To install NeuralMap use:

pip install neural-map

Get started

After installing NeuralMap, obtain and prepare your dataset. For this example we will create a dataset with 10 blobs in a five dimensional space and scale it to fit the observations to the range [0, 1]:

from sklearn import datasets, preprocessing

blobs = datasets.make_blobs(n_samples=1000, n_features=5, centers=10)
scaler = preprocessing.MinMaxScaler()
data = scaler.fit_transform(blobs[0])

Then, create a NeuralMap instance and train it with the data:

from neural_map import NeuralMap

nm = NeuralMap(5, 'euclidean', columns=10, rows=10)
nm.train(data, n_epochs=20)

Now you can obtain a discrete representation:

nm.plot_analysis(data)
RP-HDBSCAN

As you can see, NeuralMap was able to successfully discover and cluster all the original blobs.

It's also possible to get the U-matrix:

nm.plot_unified_distane_matrix(data)
U-matrix

Here is also possible to recognize the 10 original blobs.

Documentation

For more details, see the NeuralMap documentation.

If you have a question, please open an issue.

Contributing

To contribute, do the following:

  • Open an issue to discuss possible changes or ask questions
  • Create a fork of the project
  • Create a new branch and push your changes
  • Create a pull request

License

NeuralMap is licensed under MIT License.

License: MIT

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

neural_map-0.0.4.tar.gz (26.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page