gpt4 book ai didi

python - 如何比较二维分布?

转载 作者:行者123 更新时间:2023-12-01 07:28:25 24 4
gpt4 key购买 nike

我需要将二维分布与 KL 散度进行比较。我尝试使用 scipy.stats.entropy 但返回了 inf。

如何设置 scipy.stats.entropy 以使用 2 个轴并返回值?

我尝试过:

from scipy.stats import entropy
import pandas as pd

one = pd.read_csv(file_one)
two = pd.read_csv(file_two)
pk = [list(item) for item in zip(one["X"], one["Y"])]
qk = [list(item) for item in zip(two["X"], two["Y"])]
for l in [pk, qk]:
for i in range(len(l)):
for j in range(len(l[i])):
# to confirm that no values are 0
#(will change to a smaller value once inf is not being returned)
if abs(l[i][j]) < 0.1:
l[i][j] = 0.1
print(entropy(pk, qk))

打印:[inf inf]

我真正想要的是单个值,但首先我需要它停止返回ing

最佳答案

查看 KL 散度的方程:

S = sum(pk * log(pk / qk), axis=0)

如果 qk 的值为零,这将导致无穷大。由于 KL 是一种概率密度(即使是离散的),分布中事件的概率永远不会为零,因此您应该用非常小的值替换零。至于形状问题,您可以展平输入或获取直方图。

编辑:也不可能有负值,什么是负概率? KL 散度比较概率分布,没有另外定义。

关于python - 如何比较二维分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com