wasserstein_distance#
- scipy.stats.wasserstein_distance(u_values, v_values, u_weights=None, v_weights=None)[Quelle]#
Berechnet die Wasserstein-1-Distanz zwischen zwei 1D-diskreten Verteilungen.
Die Wasserstein-Distanz, auch Erdbewegungsdistanz oder optimale Transportdistanz genannt, ist eine Ähnlichkeitsmetrik zwischen zwei Wahrscheinlichkeitsverteilungen [1]. Im diskreten Fall kann die Wasserstein-Distanz als Kosten für einen optimalen Transportplan verstanden werden, um eine Verteilung in die andere umzuwandeln. Die Kosten werden als Produkt der zu bewegenden Wahrscheinlichkeitsmasse und der Entfernung, über die sie bewegt wird, berechnet. Eine kurze und intuitive Einführung finden Sie unter [2].
Hinzugefügt in Version 1.0.0.
- Parameter:
- u_values1d array_like
Eine Stichprobe einer Wahrscheinlichkeitsverteilung oder die Träger (Menge aller möglichen Werte) einer Wahrscheinlichkeitsverteilung. Jedes Element ist eine Beobachtung oder ein möglicher Wert.
- v_values1d array_like
Eine Stichprobe oder die Träger einer zweiten Verteilung.
- u_weights, v_weights1d array_like, optional
Gewichte oder Zählungen, die den Stichproben- oder Wahrscheinlichkeitsmassen entsprechen, die mit den Trägerwerten verbunden sind. Die Summe der Elemente muss positiv und endlich sein. Wenn nicht angegeben, wird jedem Wert das gleiche Gewicht zugewiesen.
- Rückgabe:
- distancefloat
Die berechnete Distanz zwischen den Verteilungen.
Siehe auch
wasserstein_distance_ndBerechnet die Wasserstein-1-Distanz zwischen zwei N-D-diskreten Verteilungen.
Hinweise
Gegeben zwei 1D-Wahrscheinlichkeitsmassenfunktionen \(u\) und \(v\), ist die erste Wasserstein-Distanz zwischen den Verteilungen
\[l_1 (u, v) = \inf_{\pi \in \Gamma (u, v)} \int_{\mathbb{R} \times \mathbb{R}} |x-y| \mathrm{d} \pi (x, y)\]wobei \(\Gamma (u, v)\) die Menge der (Wahrscheinlichkeits-)Verteilungen auf \(\mathbb{R} \times \mathbb{R}\) ist, deren Randverteilungen auf dem ersten bzw. zweiten Faktor \(u\) und \(v\) sind. Für einen gegebenen Wert \(x\) gibt \(u(x)\) die Wahrscheinlichkeit von \(u\) an der Position \(x\) an, und dasselbe gilt für \(v(x)\).
Wenn \(U\) und \(V\) die jeweiligen Verteilungsfunktionen (CDFs) von \(u\) und \(v\) sind, ist diese Distanz auch gleich
\[l_1(u, v) = \int_{-\infty}^{+\infty} |U-V|\]Siehe [3] für einen Beweis der Äquivalenz beider Definitionen.
Die Eingangsverteilungen können empirisch sein, also aus Stichproben stammen, deren Werte effektiv Eingaben der Funktion sind, oder sie können als verallgemeinerte Funktionen betrachtet werden, in welchem Fall sie gewichtete Summen von Dirac-Delta-Funktionen sind, die an den angegebenen Werten lokalisiert sind.
Referenzen
[1]„Wasserstein-Metrik“, https://en.wikipedia.org/wiki/Wasserstein_metric
[2]Lili Weng, „What is Wasserstein distance?“, Lil’log, https://lilianweng.github.io/posts/2017-08-20-gan/#what-is-wasserstein-distance.
[3]Ramdas, Garcia, Cuturi „On Wasserstein Two Sample Testing and Related Families of Nonparametric Tests“ (2015). arXiv:1509.02237.
Beispiele
>>> from scipy.stats import wasserstein_distance >>> wasserstein_distance([0, 1, 3], [5, 6, 8]) 5.0 >>> wasserstein_distance([0, 1], [0, 1], [3, 1], [2, 2]) 0.25 >>> wasserstein_distance([3.4, 3.9, 7.5, 7.8], [4.5, 1.4], ... [1.4, 0.9, 3.1, 7.2], [3.2, 3.5]) 4.0781331438047861