Python (Theano) implementation of Stochastic Neighbour Embedding under f-divergence code provided by Daniel Jiwoong Im, Nakul Verma, Kristin Branson
ft-Stochastic Neighbour Embedding (ft-SNE) is f-divergence based loss criteria for t-SNE. The main idea is that different f-divergence produce better low-dimensional visualizations for different types of structure in data.
For more information, see
@article{Im2018,
title={Stochastic Neighbour Embedding under f-divergence},
author={Im, Daniel Jiwoong and Verma, Nakul and Branson, Kristin},
year={2018}
}
If you use this in your research, we kindly ask that you cite the above arxiv paper.
Packages
Entry code for MNIST, MNIST1, FACE, NEWS
python ./main.py --datatype mnist --divtypet kl --perplexity 100
python ./main.py --datatype mnist1 --divtypet rkl --perplexity 100
python ./main.py --datatype face --divtypet rkl --perplexity 100
python ./main.py --datatype news --divtypet kl --perplexity 100
Entry code for runninng your own data:
python ./run.py --divtypet kl --perplexity 100 --dataset_path [YOUR OWN DATADIR]
Note that the name of data and labels file must be in NumPy array (npy) file. Data and label file name should be data.npy (NxD matrix) and label.npy (Nx1 array), where N is number of data points, D is number of features (see line 44-45 in run.py for details).
ft-SNE embeddings obtained with interpolated divergences between KL and RKL. The perpleixty for each row corresponds to 10, 100, and 500 respectively: