https://github.com/fabriziomusacchio/wasserstein_distance_demo
This repository contains the code for some blog posts on the Wasserstein metric. For further details, please refer to the corresponding posts.
https://github.com/fabriziomusacchio/wasserstein_distance_demo
optimal-transport python wasserstein-distance
Last synced: 4 months ago
JSON representation
This repository contains the code for some blog posts on the Wasserstein metric. For further details, please refer to the corresponding posts.
- Host: GitHub
- URL: https://github.com/fabriziomusacchio/wasserstein_distance_demo
- Owner: FabrizioMusacchio
- Created: 2023-07-24T08:21:12.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-29T09:01:51.000Z (over 2 years ago)
- Last Synced: 2025-03-02T04:43:40.528Z (8 months ago)
- Topics: optimal-transport, python, wasserstein-distance
- Language: Python
- Homepage: https://www.fabriziomusacchio.com/blog/2023-07-22-wasserstein_distance
- Size: 22.8 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Wasserstein metric
This repository contains the code for the following blog posts:
* [Wasserstein distance and optimal transport](https://www.fabriziomusacchio.com/blog/2023-07-22-wasserstein_distance)
* [Wasserstein distance via entropy regularization (Sinkhorn algorithm)](https://www.fabriziomusacchio.com/blog/2023-07-23-wasserstein_distance_skinhorn)
* [Approximating the Wasserstein distance with cumulative distribution functions ](https://www.fabriziomusacchio.com/blog/2023-07-24-wasserstein_distance_cdf_approximation/)
* [Comparing Wasserstein distance, sliced Wasserstein distance, and L2 norm ](https://www.fabriziomusacchio.com/blog/2023-07-26-wasserstein_vs_l2_norm/)
* [Probability distance metrics in machine learning](https://www.fabriziomusacchio.com/blog/2023-07-28-probability_density_metrics/)
For further details, please refer to these posts.
For reproducibility:
```powershell
conda create -n wasserstein -y python=3.9
conda activate wasserstein
conda install mamba -y
mamba install -y numpy matplotlib scikit-learn scipy pot ipykernel
pip install POT
```
## Examples
Two example distributions (source and target):

The according distance (cost) matrix:

And the resulting optimal transport plan:

The corresponding Wasserstein distance is $W_1 = \sim0.1658$.
Comparing Wasserstein distance, sliced Wasserstein distance (SWD), and L2 norm:


Comparing various probability distance metrics:

