KL Divergence

KL( Kullback–Leibler) Divergence中文译作KL散度,从信息论角度来讲,这个指标就是信息增益(Information Gain)或相对熵(Relative Entropy),用于衡量一个分布相对于另一个分布的差异性,注意,这个指标不能用作距离衡量,因为该指标不具有对称性,即两个分布PP和QQ,DKL(P|Q)DKL(P|Q)与DKL(Q|P)DKL(Q|P)计算的值一般不相等,若用作距离度量,一般需要对公式加以修改,后文讲到。

KL Divergence的计算公式为

对于离散分布

DKL(P|Q)=∑iP(i)logP(i)Q(i)

DKL(P|Q)=∑iP(i)log⁡P(i)Q(i)

对于连续分布

DKL(P|Q)=∫∞−∞p(x)logp(x)q(x)dx

DKL(P|Q)=∫−∞∞p(x)log⁡p(x)q(x)dx

程序

利用python 3计算

import numpy as np

import scipy.stats

# 随机生成两个离散型分布

x = [np.random.randint(1, 11) for i in range(10)]

print(x)

print(np.sum(x))

px = x / np.sum(x)

print(px)

y = [np.random.randint(1, 11) for i in range(10)]

print(y)

print(np.sum(y))

py = y / np.sum(y)

print(py)

# 利用scipy API进行计算

# scipy计算函数可以处理非归一化情况,因此这里使用

# scipy.stats.entropy(x, y)或scipy.stats.entropy(px, py)均可

KL = scipy.stats.entropy(x, y)

print(KL)

# 编程实现

KL = 0.0

for i in range(10):

KL += px[i] * np.log(px[i] / py[i])

# print(str(px[i]) + ' ' + str(py[i]) + ' ' + str(px[i] * np.log(px[i] / py[i])))

print(KL)

---------------------

作者:hfut_jf

来源:CSDN

原文:https://blog.csdn.net/hfut_jf/article/details/71403741

版权声明:本文为博主原创文章,转载请附上博文链接!

python计算矩阵的散度_python 3计算KL散度(KL Divergence)相关推荐

  1. python计算矩阵对角线之和_Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. python科学计算是什么意思_Python科学计算和数据分析(NumPy详细介绍)

    本文介绍的科学计算.数据分析必备基础知识. 本文全文约2600字,阅读时间约15分钟,请你耐心观看. 本文使用的开发环境是Python3.8,Numpy版本是1.19,本文的例子全部经过验证,你可以直 ...

  3. python矩阵sin计算器_Python科学计算工具

    Python科学计算工具-Numpy入门 2017.07.02 20:29:14字数 1,404阅读 2,509 一:前言 学了中国大学mooc的Python数据分析与展示课程感觉挺不错的,记录下来以 ...

  4. python计算矩阵对角线之和_Python练习实例38 | 求3*3矩阵主对角线元素之和

    刚拿到这道题,可能还有不少的小伙伴们不知道3*3主对角元素是哪几个. 其实很简答,就是3*3矩阵当中的第1个.第5个以及第9个的元素之和. 矩阵.jpg 接下来,show code! # 求3*3矩阵 ...

  5. python的科学计算库有哪些_Python科学计算库-Numpy

    NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...

  6. python科学计算模块有什么_Python科学计算—numpy模块总结(1)

    作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...

  7. python中符号计算输出数学_Python科学计算与数据处理—符号运算库.doc

    Python 科学计算与数据处理 - 符号运算库 符号运算库目录从示例开始欧拉恒等式球体体积数学表达 式符号数值运算符和函数符号运算表达式转换和简化方程目录微分 方程积分其他函数符号运算库. 它的目标 ...

  8. python时间差转换成天数_Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date im ...

  9. python判断正负的函数_Python |在计算操作的函数内将负数转换为正数?

    我一直在寻找将负数转换为正数,我发现了一些东西,但没有成功.. 这是一个来自在线Python页面的练习,我正在学习Python. 我希望你明白这一点. 这是去洛杉矶旅行,我用功能计算钱,但现在有一个问 ...

最新文章

  1. 中国血统关系称谓大全
  2. Redis淘汰删除策略
  3. 美团面试题:缓存一致性,我是这么回答的!
  4. STM32 利用空闲中断接收数据
  5. php viewmodel,PHP日记——Lavarel常用语句之View篇
  6. jQuery实现影院选座订座效果
  7. cte公用表表达式_SQL Server公用表表达式(CTE)
  8. 基于XMLHttpRequest封装Ajax请求
  9. 关于python 输出中文
  10. pp助手苹果版本_pp 助手停止服务/共享 ID 结束,旧版应用还能这样下载
  11. Android 配置 junit 单元测试
  12. origin三图合一_利用Origin将多组拟合图放在一张表中的方法
  13. ps5手柄连接android,PS5游戏手柄甚至可以兼容安卓设备?这一次有的玩了
  14. mac电脑usb连接android手机,【已解决】安卓手机小米9如何连接到Mac电脑中去拷贝手机中图片...
  15. 东莞 小学计算机编程大赛,小学生编程大赛【小学生大赛自我介绍】
  16. 安卓手机 WiFi已连接,无法访问互联网
  17. 如何为BLE 设备添加OTA DFU 空中升级服务(下)?
  18. 你是否了解APP耗电问题?深入探索 Android 电量优化,flutter插件推荐
  19. matlab第一次学习成果
  20. 如何实现电脑远程操控西门子触摸屏画面

热门文章

  1. signature=e100a77f9e5994135d27edcec0fb2455,Signatures from Trapdoor Commitments with Strong Openings
  2. C语言贪吃蛇详解4,c语言贪吃蛇详解4.食物的投放与蛇的变长
  3. 停止Excel自动将分数转化为日期
  4. mac查看端口被哪个进程占用并杀死
  5. DBCO-PEG-Casein/Ovalbumin/Lectins点击化学DBCO偶联络蛋白/卵清蛋白/凝集素
  6. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
  7. 常用的java随机数生成办法
  8. python2.0 迁移_Python ADAL 到 MSAL 的迁移指南 - Microsoft identity platform | Azure Docs
  9. 百度API--通过ip地址定位
  10. CMMI3标准文档模板大全