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.
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.
This program was tested under Python 3.6. All the required packages are contained in setup.py
After cloning this repository, install the package by running the following:
pip3 install .
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)
-
scikit-learn - Extensive machine learning framework
-
Keras - Deep learning framework wrapper that supports TensorFlow, Theano, and CNTK
- Francesco Crecchi - Research and implementation - FrancescoCrecchi
- This project was forked from zaburo-ch's implementation.