概述
DS:Gibbs Gauss采样的简介、实现代码之详细攻略
目录
Gibbs Gauss采样的简介
Gibbs Gauss采样的案例应用
1、利用np.random.multivariate_normal函数实现从多元高斯分布中采样Gibbs Gauss采样实现代码
Gibbs Gauss采样的简介
Gibbs采样在高维分布中的效率较高,而且易于实现。其中一种常见的Gibbs采样算法是Gibbs Gauss采样(Gibbs sampling for Gaussian distributions),它主要用于从多元高斯分布中采样样本。
在Gibbs Gauss采样中,假设我们要从一个$n$维的多元高斯分布中采样样本。首先,我们需要知道这个多元高斯分布的均值向量和协方差矩阵。然后,我们随机选择一个维度$i$,并从给定其他维度的条件下,采样第$i$个维度的值,这个条件概率分布是一个一元高斯分布,其均值和方差可以通过协方差矩阵和其他维度已知的值来计算。接着,我们更新已知维度的值,并重复这个过程,直到得到$n$个维度的样本,从而近似地模拟了多元高斯分布。
Gibbs Gauss采样的案例应用
1、利用np.random.multivariate_normal函数实现从多元高斯分布中采样Gibbs Gauss采样实现代码
import numpy as np
import matplotlib.pyplot as plt
N = 1000
# 初始化y, 可以任选一个值
y = 0
xs = []
ys = []
for i in range(N):
# 更新x_t
x = np.random.normal(0.8*y, 0.6)
# 更新y_t
y = np.random.normal(0.8*x, 0.6)
xs.append(x)
ys.append(y)
xs2, ys2 = np.random.multivariate_normal( [0, 0], [[1,0.8],[0.8,1]], N ).T
plt.subplot(211)
plt.title('gibbs Gauss')
plt.scatter(xs, ys)
plt.subplot(212)
plt.scatter(xs2, ys2)
plt.show()
最后
以上就是孤独未来为你收集整理的Algorithm:实现LDA的Gibbs Gauss采样(绘制多图subplot)的全部内容,希望文章能够帮你解决Algorithm:实现LDA的Gibbs Gauss采样(绘制多图subplot)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复