Wasserstein距离计算实例
时间: 2023-06-13 21:02:30 浏览: 197
Wasserstein Home Case Study.zip_Home Home_Vehicle Routing_Wasser
Wasserstein距离(也称为“地球移动距离”)是一种用于衡量两个概率分布之间距离的方法。它不仅考虑了分布之间的相似性,还考虑了从一个分布到另一个分布的变换成本。
下面我们将通过一个简单的例子来计算Wasserstein距离。
假设我们有两个一维的概率分布:P1和P2。这两个分布的密度函数如下:
P1(x) = 0.2 * N(x; 0, 1) + 0.8 * N(x; 4, 1)
P2(x) = 0.6 * N(x; 0, 1) + 0.4 * N(x; 4, 1)
其中,N(x; μ, σ)表示均值为μ,标准差为σ的正态分布在x处的概率密度。在上面的例子中,我们使用了两个正态分布的加权平均来表示每个分布。
我们可以使用Python中的Scipy库来计算这两个分布的Wasserstein距离。以下是计算代码:
```python
from scipy.stats import wasserstein_distance
import numpy as np
# 生成样本
x1 = np.concatenate([np.random.normal(0, 1, 200), np.random.normal(4, 1, 800)])
x2 = np.concatenate([np.random.normal(0, 1, 600), np.random.normal(4, 1, 400)])
# 计算Wasserstein距离
w_dist = wasserstein_distance(x1, x2)
print("Wasserstein距离为:", w_dist)
```
在这个例子中,我们生成了两个样本x1和x2,它们分别来自于P1和P2。然后,我们使用Scipy库中的wasserstein_distance函数来计算它们之间的Wasserstein距离。在这个例子中,我们得到的结果是1.24。
这个结果告诉我们,从P1到P2的“变换成本”是1.24。如果我们有更多的分布需要比较,我们可以使用Wasserstein距离来衡量它们之间的相似性。
阅读全文