python中计算KL divergence

  统计/机器学习 概率分布 描述性统计 Python    浏览次数: 787
0

python中计算KL divergence有什么直接调用的函数吗?

如果没有的话,那就自己手写咯


 

飞翔钉子   2018-04-06 22:53



   2个回答 
5

scipy里的entropy实际上就可以计算Kullback–Leibler divergence

>>> from scipy.stats import entropy
>>> entropy(p, q)


SofaSofa数据科学社区 DS面经 问答 实战

sasa   2018-04-07 22:47

这个是二项分布的情况 - abuu   2019-01-15 09:51
4

@sasa 写了二项分布的情况,其实KL还可以做两个高斯分布的情况

假设两个高斯分布$p:N(\mu_1, \sigma_1^2)$,$q:N(\mu_2,\sigma_2^2)$,这两个高斯分布的KL divergence就等于

$$\text{KL}(p,q)=\log\frac{\sigma_2}{\sigma_1}+\frac{\sigma_1^2+(\mu_1-\mu_2)^2}{2\sigma_2^2}-\frac{1}{2}$$

上面的式子用python很好写的

SofaSofa数据科学社区 DS面经 问答 实战

abuu   2019-01-15 09:58



  相关主题

怎么理解指数分布里的参数lambda?   1回答

KL divergence为什么不是对称的?   3回答

boxplot里的横线是什么意思?   1回答

QQ-plot图里的x轴y轴是什么意思   1回答

生成两组不独立的标准正态分布随机数   1回答

python产生服从常用概率分布的随机数   1回答

多个独立同分布的均匀随机变量的最小值的期望是多少?   2回答

均匀分布的上限的最大似然估计   2回答

两个独立的正态随机变量的乘积服从什么分布?   1回答

机器学习中,数据的分布是指什么呢?   1回答

二项分布的正态近似   2回答

python中百分位数的逆运算   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!