Amy 原创整理|资料核验:2026-11-07
SciPy的wasserstein_distance用于两个一维离散分布。官方文档把u_values、v_values定义为观测值或可能取值;各取值对应的频数、权重则放在u_weights、v_weights。省略权重时,每个输入值按相同权重处理;权重总和需为正且有限。返回值是距离。
下面是Amy依据官方定义推导的教学示例,不是真实业务数据:两个分布的取值都是0和10,A的频数为9和1,B为1和9。应传入wasserstein_distance([0,10], [0,10], u_weights=[9,1], v_weights=[1,9])。归一化后,需把0.8的概率质量从0移到10,距离为0.8×10=8。
若把两组频数直接当成取值,调用wasserstein_distance([9,1], [1,9]),两边实际都是等权的1与9,距离便是0。这不是原来的分布比较,而是把输入含义换掉了。
Amy建议审阅AI生成的分析代码时,先在表格里注明哪列是数值、哪列是该数值的出现次数,再检查函数参数。若使用直方图,还要交代代表各区间的取值如何选取,避免把区间编号或频数误当作观测值。本文依据核验时可读的官方API文档,不是软件新版本新闻。
官方来源:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wasserstein_distance.html