https://github.com/pythonot/snekhorn
https://github.com/pythonot/snekhorn
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pythonot/snekhorn
- Owner: PythonOT
- License: mit
- Created: 2023-10-05T13:39:08.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-27T12:47:40.000Z (about 2 years ago)
- Last Synced: 2024-12-27T04:25:35.743Z (about 1 year ago)
- Language: Python
- Size: 12.4 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SNEkhorn
Implementation of the paper [SNEkhorn: Dimension Reduction with Symmetric Entropic Affinities](https://hal.science/hal-04103326) (NeurIPS 2023). SNEkhorn is a dimension reduction method based on optimal transport and symmetric entropic affinities.
Feel free to ask if any question.
To intall the toobox run the following code in a shell:
```
pip install -e .
```
The main class can be imported as
```
from snekhorn import SNEkhorn
```
If you use this toolbox in your research and find it useful, please cite SNEkhorn using the following bibtex reference:
```
@inproceedings{snekhorn2023,
title={{SNE}khorn: Dimension Reduction with Symmetric Entropic Affinities},
author={Van Assel, Hugues and Vayer, Titouan and Flamary, R{\'e}mi and Courty, Nicolas},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems (NeurIPS)},
year={2023},
url={https://openreview.net/forum?id=y9U0IJ2uFr}
}
```
* Some simple demos are presented in the demo folder:
- [example_affinities.py](/demo/example_affinities.py): illustrates the toolbox for calculating the symmetric entropic affinities.
- [example_simple_snekhorn.py](/demo/example_simple_snekhorn.py): simple example that uses SNEkhorn.
- [example_coil.py](/demo/example_coil.py): comparison of tSNE/tSNEkhorn on COIL dataset.
- [example_fig5_paper.py](/demo/example_fig5_paper.py): replicate the Figure 5 of the paper.
* You can compare the performances of SNEkhorn on SNAREseq/COIL data by running the files in the expes folder.
### Prerequisites
* Pytorch
* Matplotlib
* Pillow
### Authors
* [Hugues Van Assel](https://huguesva.github.io/)
* [Titouan Vayer](https://tvayer.github.io/)
* [Rémi Flamary](https://remi.flamary.com/index.fr.html)
* [Nicolas Courty](https://people.irisa.fr/Nicolas.Courty/)