Wasserstein metric
This repository contains the code for the following blog posts:
- Wasserstein distance and optimal transport
- Wasserstein distance via entropy regularization (Sinkhorn algorithm)
- Approximating the Wasserstein distance with cumulative distribution functions
- Comparing Wasserstein distance, sliced Wasserstein distance, and L2 norm
- Probability distance metrics in machine learning
For further details, please refer to these posts.
For reproducibility:
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
Comparing Wasserstein distance, sliced Wasserstein distance (SWD), and L2 norm:
Comparing various probability distance metrics: