为什么scipy的熵函数返回的值大于1?

时间:2018-08-23 16:02:46

标签: python scipy statistics metrics

Scipy的entropy函数使用基数e作为默认值计算Kullback-Leibler散度。根据{{​​3}},使用基数e时KL散度不能大于1。我发现了scipy的熵函数返回一个大于1的值的情况。这让我感到困惑,因为我认为使用e为基数时,KL散度应始终返回小于1的值。我实际上不是在使用scipy的{​​{1}}函数计算KL散度吗?使用基数e的KL散度能否返回大于1的值?

entropy

1 个答案:

答案 0 :(得分:0)

使用底数e对KL散度没有上限。维基百科的介绍性段落可能会引起误解:

  

在简单情况下,Kullback-Leibler散度为0表示   我们可以期望两个不同的行为相似(如果不相同)   分布,而Kullback-Leibler散度为1表示   两种分布的行为方式不同,   第一个分布接近零时的期望值。

正如评论中指出的那样,没有上限,大于1的值是有效的KL散度。

相关问题