关于数据挖掘:python贝叶斯随机过程马尔可夫链MarkovChainMC和MetropolisHastingsMH采样算法可视化

55次阅读

共计 1729 个字符,预计需要花费 5 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=25428

介绍

本文,咱们阐明了 贝叶斯学习 和 计算统计 一些后果。

from math import pi
from pylab import *

马尔可夫链的不变测度

思考一个高斯 AR(1) 过程,,其中  是规范高斯随机变量的独立同散布序列,独立于 。倘若 .。而后,具备均值的高斯分布  和方差  是马尔可夫链的安稳散布。咱们用马尔可夫链的单个轨迹所取值的直方图来查看这个属性。

f=lambda x,m,sq: np.exp(-(x-m)\*\*2/(2\*sq))/np.sqrt(2\*pi\*sq)


plt.hist

第二个例子

咱们在这里思考一个马尔可夫链的例子,它的状态空间  是开单位区间。如果链条在 ,它等概率  抉择两个区间之一  或者 ,而后挪动到一个点, 它均匀分布在选定的区间内。马尔可夫链的不变散布有 cdf,。通过微分,咱们能够失去相干的密度:。对所有 ,咱们当初用马尔可夫链取值的直方图查看这个属性。

x=arange(1,m)/m

for i in range(p-1):
    \[a,b\]=rand(2)
    
plt.hist

咱们还能够阐明直方图如何收敛到安稳散布的密度。这能够通过应用 matplotlib 中的“动画”模块的动静动画来实现。上面是 python 代码。

anm = animation.FuncAnimation

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

data = \[\]
for i in range(p-1):
    \[a,b\]=npr.rand(2
    
    if ((i+1)%100==0):
        data.append
    
anim = animation.Func

咱们当初用一个例子来阐明大数定律。如 。那么,咱们冀望 ,

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

对称随机游走 Metropolis Hasting 算法

咱们当初思考一个指标散布,它是两个高斯分布的混合,一个集中在 ,另一个集中在 

  是核心规范正态分布的密度。

为了针对此散布,咱们依据对称随机游走 Metropolis Hasting 算法进行采样。当链条处于状态时 ,咱们提出一个候选 ,依据 ,其中 。而后咱们承受 ,有概率 ,其中 . 否则,.

from IPython.display import HTML


rc('animation', html='jshtml')
ani

独立 Metropolis Hasting 算法

咱们再次思考一个指标散布,它是两个高斯分布的混合,一个集中在 ,另一个集中在 ,其中  是核心规范正态分布的密度。

为了针对这种散布,咱们依据具备独立提议的 Metropolis Hasting 算法进行采样。当链条处于状态时 ,咱们提出一个候选 ,依据 ,其中 。而后咱们承受  有概率 ,其中  和  是密度 .。否则,.。

mc=npr.randn*np.one
data=\[\]
for i in range:
    v=sig*npr+sft
    alpha
    if (npr.rand()<alpha): 
        mc\[i+1\] = v        
    if ((i+1)%r==0):
        data.append

x=np.linspac


    
anim = animation.FuncAn
   

最受欢迎的见解

1.matlab 应用贝叶斯优化的深度学习

2.matlab 贝叶斯隐马尔可夫 hmm 模型实现

3.R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真

4.R 语言中的 block Gibbs 吉布斯采样贝叶斯多元线性回归

5.R 语言中的 Stan 概率编程 MCMC 采样的贝叶斯模型

6.Python 用 PyMC3 实现贝叶斯线性回归模型

7.R 语言应用贝叶斯 层次模型进行空间数据分析

8.R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型

9.matlab 贝叶斯隐马尔可夫 hmm 模型实现

正文完
 0