首页 > 编程语言 >拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

时间:2022-12-11 16:31:27浏览次数:50  
标签:rand Metropolis MC Chain 马尔可夫 np 我们 npr

介绍

本文,我们说明了贝叶斯学习和 计算统计一些结果。

  1.   
  2.  from math import pi
  3.  from pylab import *

马尔可夫链的不变测度

考虑一个高斯 AR(1) 过程, 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布

, 其中 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_02

 是标准高斯随机变量的独立同分布序列,独立于 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_03。假使 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_04

.。然后,具有均值的高斯分布 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_05

 和方差 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_06

 是马尔可夫链的平稳分布。我们用马尔可夫链的单个轨迹所取值的直方图来检查这个属性。

  1.   
  2.  f=lambda x,m,sq: np.exp(-(x-m)**2/(2*sq))/np.sqrt(2*pi*sq)
  3.   
  4.   
  5.  plt.hist

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_07

第二个例子

我们在这里考虑一个马尔可夫链的例子,它的状态空间 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_08

 是开单位区间。如果链条在 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_09,它​等概率 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_10

 ​选择两个区间之一 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_11

 或者 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_12

 ,然后移动到一个点, 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_13 它均匀分布在选定的区间内。马尔可夫链的不变分布有 cdf, 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_14

。 通过微分,我们可以得到相关的密度: 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_15

 。对所有 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_16

, 我们现在用马尔可夫链取值的直方图检查这个属性。

  1.   
  2.  x=arange(1,m)/m
  3.   
  4.  for i in range(p-1):
  5.  [a,b]=rand(2)
  6.   
  7.  plt.hist

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_17

我们还可以说明直方图如何收敛到平稳分布的密度。这可以通过使用 matplotlib 中的“动画”模块的动态动画来完成。下面是python代码。

  1.   
  2.   
  3.  anm = animation.FuncAnimation

以这个例子结束,这是一个动画。

  1.   
  2.   
  3.  data = []
  4.  for i in range(p-1):
  5.  [a,b]=npr.rand(2
  6.   
  7.  if ((i+1)%100==0):
  8.  data.append
  9.   
  10.  anim = animation.Func

我们现在用一个例子来说明大数定律。如 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_18

。 那么,我们期望 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_19

,

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_20

  1.   
  2.  x=np.arange/(p)
  3.  for i in range(p-1):
  4.  [a,b]=npr.rand
  5.  m=np.cumsum(g(m))/np.arange(1,p+1)
  6.  plot

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_21

对称随机游走 Metropolis Hasting 算法

我们现在考虑一个目标分布,它是两个高斯分布的混合,一个集中在 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_22 ,另一个集中在 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_23


拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_24

 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_25 是中心标准正态分布的密度。

为了针对此分布,我们根据对称随机游走 Metropolis Hasting 算法进行采样。当链条处于状态时 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_26,我们提出一个候选 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_27

, 根据 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_28

 ,其中 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_29

 。然后我们接受 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_30

 ,有概率 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_31

, 其中 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_32

. 否则, 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_33

.

  1.  from IPython.display import HTML
  2.   
  3.   
  4.  rc('animation', html='jshtml')
  5.  ani

独立Metropolis Hasting 算法

我们再次考虑一个目标分布,它是两个高斯分布的混合,一个集中在 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_34 ,另一个集中在 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_35

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_36

,其中 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_37 是中心标准正态分布的密度。为了针对这种分布,我们根据具有独立提议的 Metropolis Hasting 算法进行采样。当链条处于状态时 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_38,我们提出一个候选 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_39

 ,根据 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_40

 ,其中 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_41

 。然后我们接受 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_42

 有概率 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_正态分布_43

, 其中 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_44

 和 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_45 是密度 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_46

.。否则, 

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_直方图_47

.。

  1.   
  2.  mc=npr.randn*np.one
  3.  data=[]
  4.  for i in range:
  5.  v=sig*npr+sft
  6.  alpha
  7.  if (npr.rand()<alpha):
  8.  mc[i+1] = v
  9.  if ((i+1)%r==0):
  10.  data.append
  11.   
  12.  x=np.linspac
  13.   
  14.   
  15.   
  16.  anim = animation.FuncAn

拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化_线性回归_48

标签:rand,Metropolis,MC,Chain,马尔可夫,np,我们,npr
From: https://blog.51cto.com/u_14293657/5928375

相关文章

  • memcached 入门学习
    1、概念     memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。2、......
  • memcached 相关资源汇总
    Memcached官方站点:​​http://www.danga.com/memcached​​/MemcachedWin321.2.6下载:​​http://code.jellycan.com/memcached/​​安装帮助:​​Windows下的.NET+Memcach......
  • 使用 TVMC 编译和优化模型
    处理流程graphTB;A["tvmccompile:输入ONNXmodel。输出TVMruntimetar文件"]B["pythonpreprocess.py:输入jpg格式文件。输出:Numpynpz格式文件"]C["t......
  • TI的FMCW(调频连续波)毫米波雷达培训(1)------距离估算
    TI的FMCW(调频连续波)毫米波雷达培训(1)------距离估算从这一篇开始我们将讨论一项称为FMCW雷达的传感器技术,该技术如今在汽车和工业领域非常流行,因此本系列的文章是......
  • Tomcat使用介绍
    一、tomcat介绍Tomcat服务器是一个免费的开放源代码的轻量级Web应用服务器,如apache处理静态HTML能力突出不同,tomcat处理动态HTML能力相当强大,因此一般项目都是部署apache......
  • Tomcat源码分析使用NIO接收HTTP请求(六)----变更工程目录
    本章的主要目标是根据Tomcat目录对上一章的工程目录进行变更,使之我们的程序与Tomcat想接近,便于后续学习。下图是上一章的工程目录图 下面这张图是本章中所使用的目录......
  • SpringBoot内置tomcat启动过程及原理
    作者:李岩科1背景SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomca......
  • Tomcat源码分析使用NIO接收HTTP请求(七)----使用SocketProcessor接收请求
    在第一章笔者提到在NioEndpoint类中会使用五个内部类来处理请求。在之前的文章中为了学习的方便只使用了四个类,在本章中就让我们使用 SocketProcessor处理请求。本章程序......
  • Tomcat源码分析使用NIO接收HTTP请求(五)----响应请求
    本章的主要目标是为请求添加响应第一步:新建Http11OutputBuffer类publicclassHttp11OutputBuffer{protectedfinalByteBufferheaderBuffer;publicHttp1......
  • SAK-TC364DP-64F300W AA汽车MCU、SAK-TC375TP-96F300W AA特点概述
    1、SAK-TC364DP-64F300WAA汽车32位微控制器MCU封装:LQFP144批次:新年份说明:SAK-TC364DP-64F300WAA属于AURIX™TC36xDP家族。AURIX™第二代(TC3xx)在性能、内存大小、连接......