python中计算KL divergence

  统计/机器学习 概率分布 描述性统计 Python    浏览次数:1287        分享
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面试题库 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面试题库 DS面经

abuu   2019-01-15 09:58



  相关主题

顺序统计量(order statistics)是什么?   0回答

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

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

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

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

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

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

python怎么生成截断正态分布变量?   1回答

python里怎么计算两个向量的余弦相似?   1回答

python里计算百分位数   2回答

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

Weibull分布是什么分布?现实中有什么例子?   1回答



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

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

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

我们谢绝答非所问。

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

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