python - PyMC3 Dirichlet 过程多元高斯混合模型
问题描述
我无法让我的形状适用于狄利克雷过程高斯混合模型。我的数据observations
有形状(number of samples, number of dimensions)
。每个高斯的均值应该从各向同性的先验中得出,每个高斯的协方差应该是单位矩阵。我以为我设置正确,但出现以下错误:
Input dimension mis-match. (input[0].shape[1] = 13, input[1].shape[1] = 2)
我的代码是:
import numpy as np
import pymc3 as pm
import theano.tensor as tt
num_obs, obs_dim = observations.shape
max_num_clusters = 13
def stick_breaking(beta):
portion_remaining = tt.concatenate([[1], tt.extra_ops.cumprod(1 - beta)[:-1]])
return beta * portion_remaining
with pm.Model() as model:
w = pm.Deterministic("w", stick_breaking(beta))
cluster_means = pm.MvNormal(f'cluster_means',
mu=pm.floatX(np.zeros(obs_dim)),
cov=pm.floatX(gaussian_mean_prior_cov_scaling * np.eye(obs_dim)),
shape=(max_num_clusters, obs_dim))
comp_dists = pm.MvNormal.dist(mu=cluster_means,
cov=gaussian_cov_scaling * np.eye(obs_dim),
shape=(max_num_clusters, obs_dim))
obs = pm.Mixture(
"obs",
w=w,
comp_dists=comp_dists,
observed=observations,
shape=obs_dim)
有人可以澄清如何让形状工作吗?
解决方案
推荐阅读
- c# - 将 c++ API 结构转换为 c#
- amazon-web-services - 如何在 Amazon ELB 502 响应中立即提供自定义错误页面?
- python - 尝试使用请求库获取访问令牌(对于 Cloudhub.io)时收到的身份验证被拒绝作为响应
- node.js - 使用 sendgrid 和 node.js 将日志文件附加到电子邮件
- windows - 使用 Window Symbolic Links 或 Junctions 时是否需要考虑所有权和/或写入权限?
- javascript - 如何在对象中找到数组
- python - 按顺序多次操作列表列表
- css - Next.JS + AMP CSS
- java - 在不使用 Aspects 的情况下跟踪 Spring 方法调用
- android - 当我尝试从加密的 sqlite db 获取数据时出现异常