gpt4 book ai didi

python - 为什么 scipy.stats.entropy(a, b) 返回 inf 而 scipy.stats.entropy(b, a) 不返回?

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:51 37 4
gpt4 key购买 nike

In [15]: a = np.array([0.5, 0.5, 0, 0, 0])

In [16]: b = np.array([1, 0, 0, 0, 0])

In [17]: entropy(a, b)
Out[17]: inf

In [18]: entropy(b, a)
Out[18]: 0.6931471805599453

来自他们的 documentation ,我预计两者都会返回 inf,因为给出的方程是 S = sum(pk * log(pk/qk), axis=0)。第18行输出非无限的原因是什么?

最佳答案

entropy(b, a) 函数计算第一对:

>>> 1 * np.log(1/0.5)
>>> 0.6931471805599453

对于entropy(a, b),有一种被零除的情况,0.5/0,这导致无限解。

对于其余部分,entropy() 假定 0 * np.log(0/0) = 0

关于python - 为什么 scipy.stats.entropy(a, b) 返回 inf 而 scipy.stats.entropy(b, a) 不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57261983/

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