200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > DS:Gibbs Gauss采样的简介 实现代码之详细攻略

DS:Gibbs Gauss采样的简介 实现代码之详细攻略

时间:2021-12-24 17:30:10

相关推荐

DS:Gibbs Gauss采样的简介 实现代码之详细攻略

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 npimport matplotlib.pyplot as pltN = 1000# 初始化y, 可以任选一个值y = 0xs = []ys = []for i in range(N):# 更新x_tx = np.random.normal(0.8*y, 0.6)# 更新y_ty = 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 ).Tplt.subplot(211)plt.title('gibbs Gauss')plt.scatter(xs, ys)plt.subplot(212)plt.scatter(xs2, ys2)plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。