我是靠谱客的博主 孤独未来,最近开发中收集的这篇文章主要介绍Algorithm:实现LDA的Gibbs Gauss采样(绘制多图subplot),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部