Python和MATLAB库尔巴克–莱布勒散度信息论统计学生物学和算法模型

news2024/12/26 14:32:30

🎯要点

  1. 高斯混合模型聚类和t分布随机邻域嵌入底层分析
  2. 信息论测量
  3. 复合彩票统计学计算结果
  4. 离散分布速率最优估计器
  5. 样本统计相似性
  6. 快速闭环散度和交叉熵计算
  7. 催乳素诱导模型贝叶斯快速推理模型
  8. 视觉皮层活动神经数据分布
    在这里插入图片描述

Python散度

在数理统计中,库尔巴克–莱布勒散度(也称为相对熵和 I 散度 ),表示为 D K L ( P ∥ Q ) D_{ KL }(P \| Q) DKL(PQ),是一种统计距离:衡量一个参考概率分布 P P P 与第二个概率分布 Q Q{ } Q 之间的差异。从数学上讲,它定义为
D K L ( P ∥ Q ) = ∑ x ∈ X P ( x ) log ⁡ ( P ( x ) Q ( x ) ) D_{KL}(P \| Q)=\sum_{x \in X } P(x) \log \left(\frac{P(x)}{Q(x)}\right) DKL(PQ)=xXP(x)log(Q(x)P(x))
让我们从离散情况开始。因此,让 P P P Q Q Q 成为在同一概率空间 X \mathcal { X } X 上定义的两个概率分布。第一次尝试可能是考虑分布之间差异的平均值。确实非常接近,但以下定义略有不同。库尔巴克–莱布勒散度(也称为相对熵)KL ( P ∥ Q ) (P \| Q) (PQ) 定义为概率 P ( x ) P(x) P(x) Q ( x ) Q(x) Q(x) 的对数之间差异的平均值:
K L ( P ∥ Q ) =  def  E [ log ⁡ P ( x ) − log ⁡ Q ( x ) ] KL(P \| Q) \stackrel{\text { def }}{=} E [\log P(x)-\log Q(x)] KL(PQ)= def E[logP(x)logQ(x)]
期望值使用概率 P P P(通常写为 x ∼ P x \sim P xP )计算。期望值的定义可得出以下表达式
K L ( P ∥ Q ) = ∑ x ∈ X P ( x ) log ⁡ ( P ( x ) Q ( x ) ) KL(P \| Q)=\sum_{x \in X } P(x) \log \left(\frac{P(x)}{Q(x)}\right) KL(PQ)=xXP(x)log(Q(x)P(x))
对于连续分布,我们写为
K L ( P ∥ Q ) = ∫ − ∞ ∞ p ( x ) log ⁡ ( p ( x ) q ( x ) ) d x KL(P \| Q)=\int_{-\infty}^{\infty} p(x) \log \left(\frac{p(x)}{q(x)}\right) d x KL(PQ)=p(x)log(q(x)p(x))dx
其中 p ( x ) p(x) p(x) q ( x ) q(x) q(x) 分别是 P P P Q Q Q 的密度。

如果 { p i } \left\{p_i\right\} {pi} { q i } \left\{q_i\right\} {qi} 是两个概率质量函数,即两个可数或有限的非负数序列,且和为 1,那么
∑ i p i log ⁡ ( p i q i ) ≥ 0 \sum_i p_i \log \left(\frac{p_i}{q_i}\right) \geq 0 ipilog(qipi)0
关于散度实际上表达了两个分布之间的某种距离,表达式
K L ( P ∥ Q ) = ∫ − ∞ p ( x ) ( log ⁡ p ( x ) − log ⁡ q ( x ) ) d x = ∫ − ∞ ∞ p ( x ) D ( x ) d x \begin{aligned} KL(P \| Q) & =\int_{-\infty} p(x)(\log p(x)-\log q(x)) d x \\ & =\int_{-\infty}^{\infty} p(x) D(x) d x \end{aligned} KL(PQ)=p(x)(logp(x)logq(x))dx=p(x)D(x)dx
P P P Q Q Q 为以下分布(每个可能的结果 x x x 都在 X = { 0 , 1 , 2 } X =\{0,1,2\} X={0,1,2} 中):
0 1 2  分布  P ( x ) 9 / 25 12 / 25 4 / 25  分布  Q ( x ) 1 / 3 1 / 3 1 / 3 \begin{array}{|c|c|c|c|} \hline & 0 & 1 & 2 \\ \hline \text { 分布 } P(x) & 9 / 25 & 12 / 25 & 4 / 25 \\ \hline \text { 分布 } Q(x) & 1 / 3 & 1 / 3 & 1 / 3 \\ \hline \end{array}  分布 P(x) 分布 Q(x)09/251/3112/251/324/251/3
我们来计算一下 K L ( P ∥ Q ) KL(P\|Q) KL(PQ)
K L ( P ∥ Q ) = ∑ x P ( x ) log ⁡ ( P ( x ) Q ( x ) ) = 9 / 25 log ⁡ ( 9 / 25 1 / 3 ) + 12 / 25 log ⁡ ( 12 / 25 1 / 3 ) + 4 / 25 log ⁡ ( 4 / 25 1 / 3 ) ≈ 0.0853 \begin{aligned} KL(P \| Q) & =\sum_x P(x) \log \left(\frac{P(x)}{Q(x)}\right) \\ & =9 / 25 \log \left(\frac{9 / 25}{1 / 3}\right)+12 / 25 \log \left(\frac{12 / 25}{1 / 3}\right)+4 / 25 \log \left(\frac{4 / 25}{1 / 3}\right) \\ & \approx 0.0853 \end{aligned} KL(PQ)=xP(x)log(Q(x)P(x))=9/25log(1/39/25)+12/25log(1/312/25)+4/25log(1/34/25)0.0853

使用Python评估

from scipy.stats import entropy
entropy([9/25, 12/25, 4/25], qk=[1/3, 1/3, 1/3])
0.0852996013183706
import matplotlib.pyplot as plt 
import numpy as np 

p = [9/25, 12/25, 4/25]
q = [1./3,1./3,1./3]
xx = ['0','1','2']

logq = np.log(q)
logp = np.log(p)

plt.bar(xx, q, color='beige')
plt.bar(xx, p, alpha=.6, color='orange')
plt.show()

plt.bar(xx, logq, color='beige')
plt.bar(xx, logp, alpha=.6, color='orange')
plt.show()
from scipy.stats import norm, skewnorm

x = np.arange(-3,2.5,.001)
plt.plot(x, 10*skewnorm.pdf(x,-1.2), color='black')
plt.plot(x, 10*norm.pdf(x, scale=1.1), color='orange')
log1 = np.log(skewnorm.pdf(x,-1.2))
log2 = np.log(norm.pdf(x, scale=1.1))
plt.plot(x, log1, color='black')
plt.plot(x, log2, color='orange')
plt.fill_between(x, log1, log2, 
                 where=log1>=log2, facecolor='grey', 
                 interpolate=True)
plt.fill_between(x, log1, log2, 
                 where=log1<log2, facecolor='orange', 
                 interpolate=True)
plt.show()

👉更新:亚图跨际

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

悬浮提词器免费版,5款便捷软件分享推荐

在这个信息爆炸、内容为王的时代&#xff0c;无论是直播带货、视频创作还是公开演讲&#xff0c;流畅自然的表达都是吸引观众的关键。然而&#xff0c;面对镜头时忘词卡顿却成了不少人的“心头痛”。今天&#xff0c;就给大家揭秘五款完全免费的悬浮提词器软件&#xff0c;它们…

初学51单片机之I2C总线与E2PROM二

总结下上篇博文的结论&#xff1a; 1&#xff1a;ACK信号在SCL为高电平期间会一直保持。 2&#xff1a;在字节数据传输过程中如果发送电平跳变&#xff0c;那么电平信号就会变成重复起始或者结束的信号。&#xff08;上篇博文的测试方法还是不能够明确证明这个结论&#xff0…

GWAS分析中显著位点如何注释基因:excel???

大家好&#xff0c;我是邓飞。 今天星球的小伙伴问了一个问题&#xff1a; 我现在在做GWAS分析&#xff0c;现在已经找到性状关联的SNP位点&#xff0c;下一步我如何根据position 找到基因呢&#xff1f; 关于基因注释&#xff0c;之前写过一些博客&#xff0c;可以用到的软件…

mono.cecil实现动态插入IL代码

准备 namespace ConsoleApp1 {internal class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");Console.ReadKey();}} }编译出来如下内容 使用ilspy打开 代码 安装Mono.Cecil包 代码如下 using Mono.Cecil; using Mono.Cecil.Ci…

云计算Openstack Neutron

OpenStack Neutron是OpenStack云计算平台中的网络服务组件&#xff0c;它为OpenStack提供了强大的网络连接功能。 一、基本概念 Neutron是一个网络服务项目&#xff0c;旨在为OpenStack提供网络连接。它允许用户创建和管理虚拟网络&#xff0c;包括子网、路由、安全组等&…

Arweave的出块原理

一、Arweave 关键技术 1.1数据结构&#xff1a;Blockweave 区块纺 区块坊中包括区块哈希列表和钱包列表。拥有区块哈希列表使旧区块可以被请求/验证&#xff0c;拥有钱包列表可以验证新交易&#xff0c;而无需处理钱包上一次交易所在的区块。区块哈希列表和钱包列表由矿工保持…

【最新华为OD机试E卷-支持在线评测】字符串分割转换(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

基于大数据的电脑硬件推荐及数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

基于卷积神经网络的体育运动项目分类识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 随着计算机视觉和深度学习技术的快速发展&#xff0c;利用先进的图像处理技术对体育运动进行智能分类与识别已成为研究热点。传统的运动分析方法通常依赖于人工观察和记录&#xff0c;耗时耗力且容…

fatfs API使用手册

配置 /*---------------------------------------------------------------------------/ / Configurations of FatFs Module /---------------------------------------------------------------------------*/#define FFCONF_DEF 80286 /* Revision ID *//*---------------…

JWT(JSON Web Token)的介绍

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

如何组织鼠标的默认的事件

如何组织鼠标的默认的事件 我原先的代码是 dblclick"checkNode(data)"设置了一个双击的事件&#xff0c;我如果双击的话就会导致这个内容被选中。 选中内容的同时会触发浏览器默认的操作&#xff0c;导致出现复制的框这些东西。 解决的方法。加一句。 mousedown.pr…

尝鲜使用 YOLO V11 Fine-Tuning 训练自定义的目标检测模型

一、YOLO V11 2024年9月30日&#xff0c;Ultralytics官方团队宣布YOLOv11正式发布&#xff0c;标志着YOLO系列实时目标检测器的又一次重大升级。这一新版本不仅在准确性和检测速度上再创新高&#xff0c;还通过架构和训练方法的革新&#xff0c;极大地提升了目标检测的综合性能…

算法打卡:第十一章 图论part11

今日收获&#xff1a;Floyd 算法&#xff0c;A * 算法&#xff0c;最短路算法总结 1. Floyd 算法 题目链接&#xff1a;97. 小明逛公园 思路&#xff1a;Floyd用于解决多源最短路问题&#xff0c;对边的正负权值没有要求。核心是动态规划 &#xff08;1&#xff09;dp数组的…

Stable Diffusion的Lora使用和训练 如何使用和训练LoRA模型?你想要的都在这!--人人都可以当炼金术士!

随着人工智能技术的不断发展&#xff0c;图像生成与反推技术已经成为了AI领域的一大热点。今天&#xff0c;我们就来为大家详细介绍Stable Diffusion的Lora使用和训练方法&#xff0c;让每个人都能成为炼金术士&#xff0c;创造出属于自己的图像生成魔法&#xff01; 在我们使…

108.WEB渗透测试-信息收集-FOFA语法(8)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;107.WEB渗透测试-信息收集-FOFA语法&#xff08;7&#xff09; 指挥系统的后台&#xff…

把GV幅度还不赶紧地方吧

文章目录 标题1代码 标题1 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

pve虚拟机常见问题汇总

一、问题记录 当你遇到 Proxmox VE (PVE) 报错信息 “TASK ERROR: can’t lock file ‘/var/lock/qemu-server/lock-141.conf’ - got timeout”&#xff0c;通常意味着 PVE 尝试对一个虚拟机进行操作&#xff08;如停止或重启&#xff09;时&#xff0c;无法获取必要的锁文件&…

项目管理系统如何实现项目申报流程自动化?

传统的项目申报流程往往繁琐复杂&#xff0c;涉及众多环节和部门间的协作&#xff0c;不仅耗时费力&#xff0c;还容易因人为疏忽而导致错误或延误。随着信息技术的飞速发展&#xff0c;项目管理系统的出现为项目申报流程的自动化提供了可能&#xff0c;极大地提升了申报效率和…

【Windows】自定义显示器的分辨率

背景 由于本人更新驱动导致2个显示器里面&#xff0c;有一个显示器的分辨率只剩下2个可以调节 这样就导致2个显示器分辨率不同&#xff0c;更新了多次驱动都修复不了&#xff0c;所以想着看能不能自定义分辨率 工具下载 显示器自定义分辨率工具 或者百度搜索 Custom Resolu…