首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中连续变量的Renyi发散性

Python中连续变量的Renyi发散性
EN

Stack Overflow用户
提问于 2018-08-17 18:40:35
回答 1查看 195关注 0票数 3

我必须编写Python脚本来计算Renyi散度。这对于离散变量来说很简单,但我要处理的是连续变量。由于数字错误,我有很多问题。我已经成功地为我的样本估计了pdf。这是我的代码的样子:

代码语言:javascript
复制
def cont_renyi_divergence(pdf1, pdf2, alpha, minimum, maximum):
    def integrand(x):
        return ((pdf1(x))**alpha) * ((pdf2(x))**(1-alpha))
    def KL_integrand(x):
        return (pdf1(x)) * log((pdf1(x))/(pdf2(x)), e)
    if alpha == 1:
        return -integrate.quad(KL_integrand, minimum, maximum)[0]
    else:
        return (1/(1-alpha))*log(integrate.quad(integrand, minimum, maximum)[0], e)

其中pdf1和pdf2基于高斯分布( pdf1的均值和方差分别为30和5,pdf2的均值和方差分别为30和10)。最小值和最大值是样本1 (pdf1)或样本2 (pdf2)中的最小/最大变量。这是我的函数的定义,计算Renyi散度。问题是,这个函数的返回不等于equation,这告诉我们两个正态(高斯)分布的发散性。我知道,这是一个很难的话题,但我很乐意得到任何答案或建议。

EN

回答 1

Stack Overflow用户

发布于 2018-08-24 18:21:02

实际上,它等于这个方程。我在公式中放入方差而不是标准差。除此之外,它必须是α-1,而不是cont_renyi_divergence定义中的1-α。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51893628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档