Skip to content

ESANN20 paper code repository. This package is a perplexity-free extension of Parametric t-SNE dimensionality reduction method implemented in `Keras` and compatible with `Scikit-learn`.

Notifications You must be signed in to change notification settings

FrancescoCrecchi/Multiscale-Parametric-t-SNE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multiscale Parametric t-SNE

Reference implementation for the paper: "Perplexity-free Parametric t-SNE".

Multiscale extension of parametric t-SNE which relieves the user from tuning the perplexity parameter (either by hand or via cross-validation). This implementation exploits keras to provide GPU acceleration during model training and inference, while maintaining a scikit-learn compatible interface that allows to use MultiscaleParamerticTSNE as part of a pipeline replacing the library t-SNE implementation.

In addition to the perplexity-free model, a refined ParamerticTSNE model is released. As for the multiscale implementation, it favours of GPU acceleration for neural network training and inference and is sklearn compatible. This allows the user to search for the best perplexity parameter using sklearn.model_selection.GridSearchCV module, for example.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

This program was tested under Python 3.6. All the required packages are contained in setup.py

Installing

After cloning this repository, install the package by running the following:

pip3 install .

Deployment

Simply create a ParametricTSNE or MultiscaleParametricTSNE instance. The interface was designed similarly to that of scikit-learn estimators.

from msp_tsne import MultiscaleParametricTSNE

transformer = MultiscaleParametricTSNE()

# suppose you have the dataset X
X_new = transformer.fit_transform(X)

# transform new dataset X2 with pre-trained model
X2_new = transformer.transform(X2)

Built With

  • scikit-learn - Extensive machine learning framework

  • Keras - Deep learning framework wrapper that supports TensorFlow, Theano, and CNTK

Authors

Acknowledgements

About

ESANN20 paper code repository. This package is a perplexity-free extension of Parametric t-SNE dimensionality reduction method implemented in `Keras` and compatible with `Scikit-learn`.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages