MCMC(Markov Chain Monte Carlo)的理解与实践(Python)

                       
 

Markov Chain Monte Carlo (MCMC) methods are a class of algorithms for sampling from a probability distribution based on constructing a Markov chain that has the desired distribution as its stationary distribution. The state of the chain after a number of steps is then used as a sample of the desired distribution. The quality of the sample improves as a function of the number of steps.

   

With MCMC, we draw samples from a (simple) proposal distribution so that each draw depends only on the state of the previous draw (i.e. the samples form a Markov chain, θp=θ+Δθ,ΔθN(0,σ),否则不接受

  • repeated

  • import numpy as npimport scipy.special as ssimport matplotlib.pyplot as pltdef beta_s(x, a, b):    return x**(a-1)*(1-x)**(b-1)def beta(x, a, b):    return beta_s(x, a, b)/ss.beta(a, b)def plot_mcmc(a, b):    cur = np.random.rand()    states = [cur]    for i in range(10**5):        next, u = np.random.rand()        if u < np.min((beta_s(next, a, b)/beta_s(cur, a, b), 1)):            states.append(next)            cur = next    x = np.arange(0, 1, .01)    plt.figure(figsize=(10, 5))    plt.plot(x, beta(x, a, b), lw=2, label='real dist: a={}, b={}'.format(a, b))    plt.hist(states[-1000:], 25, normed=True, label='simu mcmc: a={}, b={}'.format(a, b))    plt.show()if __name__ == '__main__':    plot_mcmc(0.1, 0.1)    plot_mcmc(1, 1)    plot_mcmc(2, 3)
       
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27







               

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值