Skip to content

Latest commit

 

History

History
45 lines (30 loc) · 1.84 KB

README.md

File metadata and controls

45 lines (30 loc) · 1.84 KB

netgross

CircleCIcodecov

This repository aims to implement some network embedding algorithms (MDE, t-SNE, UMAP) for dimensionality reduction and other networks-related stuff (processes over networks, maybe also leaky integrate-and-fire for SNN in future).

MDE strategy

Using a sum of squares loss over link distances the gradient is available in analytical form (no time wasted in computing it numerically).

The net is "inflated" using a repulsion strategy weighted with the inverse of the distance squared over random selected couples (pushing nodes away costs a lot of time apparently). This "squashes" the net and avoids overlapping manifold regions in the projection.

Then the net is evolved elastically using a "pull the childs" strategy for each node.

Everything done is opinable (I merely followed intuition and some suggestions from the MDE article) and suggestions are widely accepted.

Further development

Most of the code is written in python3 but I had to resort to extend with C for the most resource-expensive tasks, even if I'm considering using cython.

The conceptual points of greater interest for me are:

  • (possibly) multiprocessing
  • (even more possibly) GPU processing
  • find a more efficient way to display the data

apple_game apple_game apple_game

apple_fixed_distances

Installation

I suggest using a virtual environment running

pipenv install
pipenv shell
pip install .

in the main directory.

To install globally:

pip install .