Giter Club home page Giter Club logo

som-metromap's Introduction

MetroMap visualizations for Self Organizing Maps

This repository provides a working implementation of the MetroMap visualization technique for self-organizing maps. It supports the visualization of SOMs trained with the Java SOMToolbox or minisom. The MetroMap solver implements a branch-and-bound-like algorithm. The algorithm only considers points that comply with the octilinearity constraints in its search space. Based on these points a number of possible solutions are generated of which the one with the lowest deviation from the original layout and the least 'sharp' bends is selected. By default the U-Matrix will be used as a background to the metro lines.

The original implementation of the notebook, which already contained functionality for reading files generated by the SOMToolbox, as well as the base implementation of the plotting utilities (UMatrix, hit histogram and SDH) were provided to us in the course of the Self-Organizing-Systems class at the TU Wien in the winter term 2020.

Installation

First clone the repository and install the packages required to run the notebook:

git clone https://github.com/yozoon/SOM-MetroMap.git
cd SOM-MetroMap/
pip install -r requirements.txt

After that the widgetsnbextension as well as the plotlywidget jupyter notebook extension have to be enabled. This step is required for properly displaying the plotly FigureWidget (without those steps the widgets won't be displayed at all)

jupyter nbextension enable --py widgetsnbextension
jupyter nbextension enable --py plotlywidget

Examples

The following image shows the MetroMap that was generated by our implementation. The SOM was trained on the chainlink dataset using the SOMToolbox.

som-metromap's People

Contributors

yozoon avatar simmac avatar

Stargazers

Giuseppe Vettigli avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.