Skip to content

dtSNE and JEDI algorithms for Skoltech's ML 2023 course

Notifications You must be signed in to change notification settings

ooodnakov/dtsne_jedi

Repository files navigation

dtSNE and JEDI algorithms

dtSNE and JEDI algorithms for Skoltech's ML 2023 course

Installation

To install this package, inside repository run this:

python -m pip install .

or this from PyPi:

python -m pip install dtsnejedi

We hope that after that you can just import it via import dtsnejedi

dtSNE

Reference

Based on these papers:

Code is based on original implementation found here

Running

To run dtSNE with 300 optimization iterations and 30 perplexity on toy-data, use this:

python test.py --algo dtsne --n_iter 300 --perp 30

To use original tSNE implementation, change algo flag to tsne: --algo tsne.

For into about other flags, see test.py file.

JEDI

Reference

Based on these papers:

Code is based on original tSNE implementation found here.

Running

To run JEDI with 300 optimization iterations and 30 perplexity on toy-data, use this:

python test.py --algo jedi --n_iter 300 --perp 30

For into about other flags, see test.py file.

Or you can download only the "JEDI_experiments.ipynb" file and run the algorithm using the dataset described in Appendix B.3 in the article mentioned above.

Notes

  • Seems like, this tSNE and dtSNE algorimth returns matrix rotated by 180 degrees compared to other tSNE implementations (like in openTSNE and sklearn.manifold). It can be fixed by multiplying 180 degree rotation matrix.
  • All of these algorithms are extremely slow. Maybe in the future, we can do similar optimizations found in openTSNE.