scipy 关于Wasserstein距离W1的输入

zdwk9cvp  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(172)

注意:我在https://math.stackexchange.com/questions/4765025/about-the-inputs-of-the-wasserstein-distance-w-1上写了同样的问题,因为我没有得到任何评论或答案,所以我把它贴在这里,因为它可能与堆栈溢出的主题重叠

在数学中,通过使用这两个概率度量P和Q的CDF(或逆CDF)计算两个概率度量P和Q之间的Wasserstein距离W1,即F和G(或F-1和G-1)。
在Python中(请参阅scipy.stats.wasserstein_distance),您使用“*(经验)分布中观察到的值 *”作为输入来计算Wasserstein距离W1。因此:

  1. Python指南中提到的“* 在(经验)分布中观察到的值 *”作为计算W1的输入是什么?我的意思是,他们是指概率密度函数的经验估计,即。直方图,还是经验累积分布函数(eCDF)?
  2. Python中使用的输入如何与两个概率度量P和Q相关?
8hhllhi2

8hhllhi21#

不确定SciPy以及它们如何计算Wasserstein距离,我使用Python OT(最优传输)包来计算样本的Wasserstein距离。
在内部,我相信,OT从样本中计算经验CDF,然后将距离作为积分。
示例代码,Python 3.10 Windows x64

import ot
import numpy as np

#%%

tab1 = np.random.normal(2, 1, 1000)
tab2 = np.random.normal(0, 1, 1000)

q = ot.wasserstein_1d(tab1,tab2)
print(q)

打印值约为2
链接到软件包页面https://pythonot.github.io/

相关问题