日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【LDA学习系列】Gibbs采样python代码

發布時間:2025/4/16 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LDA学习系列】Gibbs采样python代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Gibbs采樣算法流程:從已知分布采樣,前提是預知條件分布

代碼流程:

代碼:

# -*- coding: utf-8 -*- ''' Created on 2018年5月15日 @author: user @attention: Gibbs Sampling利用條件概率產生符合分布的樣本,用于估計分布的期望,邊緣分布;是一種在無法精確計算情況下,用計算機模擬的方法。 '''import random import math import matplotlib.pyplot as pltdef xrange(x):return iter(range(x))def p_ygivenx(x, m1, m2, s1, s2):return (random.normalvariate(m2 + rho * s2 / s1 * (x - m1), math.sqrt(1 - rho ** 2) * s2))def p_xgiveny(y, m1, m2, s1, s2):return (random.normalvariate(m1 + rho * s1 / s2 * (y - m2), math.sqrt(1 - rho ** 2) * s1))N = 5000 K = 20 x_res = [] y_res = [] m1 = 10 m2 = -5 s1 = 5 s2 = 2rho = 0.5 y = m2for i in xrange(N):for j in xrange(K):x = p_xgiveny(y, m1, m2, s1, s2)y = p_ygivenx(x, m1, m2, s1, s2)x_res.append(x)y_res.append(y)num_bins = 50 plt.hist(x_res, num_bins, normed=1, facecolor='green', alpha=0.5) plt.hist(y_res, num_bins, normed=1, facecolor='red', alpha=0.5) plt.title('Histogram') plt.show()

結果:

總結下MCMC的理解:

MCMC采樣的思想是:p(x)直接采樣存在困難,借助已知可采樣的分布 q(x) ,如高斯分布,然后按照一定的方法拒絕q(x)采樣的樣本,達到接近 p(x) 分布的目的。而基于可采樣分布q(x)是利用馬氏鏈細致平穩性來滿足的,收斂后的樣本即接近來自p(x)產生的樣本。

MCMC算法:


由于α(xt,x?)可能非常的小,比如0.1,導致大部分的采樣值都被拒絕轉移,采樣效率很低,因此提出M-H算法。

主要改造在接受率上,這個時候如果知道條件分布,那么接受率可以直接設置為1,即為Gibbs采樣算法。


總結

以上是生活随笔為你收集整理的【LDA学习系列】Gibbs采样python代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。