如何在 python 中从高斯混合物中创建随机变量(样本)



>我正在尝试将高斯混合物拟合到 3 个变量数据集。我使用 3 个高斯模型在 python 中获得了一个 GMM 模型。

我的问题是:

  1. 如何从该 GMM 创建 PDF,就像 matlab 中的函数一样?
  2. 如何从 GMM 创建随机变量 (3d( 或抽样?

很多人上传了类似的问题,但我从来没有得到直接的答案。请提供有关如何从 GMM 采样的代码示例。

首先你需要知道你需要3个参数来创建GMM模型:

  1. 数据点
  2. 聚类均值
  3. 协方差矩阵

让每个数据点 i 和每个集群在你的情况下 k = 3 我是 已经假设您将每个集群的平均值作为列表,即意味着 和协方差中每个簇的协方差矩阵,即 每个集群的协方差。然后代码将如下所示 为您提供每个数据点的多元正态函数的值 i 和每个聚类 k 是:

import numpy as np
from scipy.stats import multivariate_normal
mnf= np.zeros((n_data, n_clusters))
for i in range(n_data):
for k in range(n_clusters):
mnf[i, k] = multivariate_normal.pdf(data[i],means[k],covariances[k])

最新更新