regression - 使用 PyMC3 的高斯混合模型进行贝叶斯回归
问题描述
我想将其表述为高斯的总和,为此,我将高斯混合模型与 PyMC3 一起使用。代码片段如下所示。
nbr_gauss = 15
data = np.column_stack((x_train, y_train))
# standardize the data
x_train = normalize(x_train,norm='max', axis=0)
y_train = normalize(y_train,norm='max',axis = 0)
with pm.Model() as multiVarModel:
# Proportion of each component (Prior) -> Mixture weights
p = pm.Dirichlet('p', a=np.ones(nbr_gauss))
# Prior on means (mu_k)
mu = pm.Normal(
'mu',
mu=np.linspace(x_train.min(), 1, nbr_gauss),
sigma=0.1,
transform=pm.transforms.ordered,
shape=(nbr_gauss,),
testval=np.linspace(x_train.min(), 1, nbr_gauss)
)
# Prior on the precision matrix (or the inv of covariance matrix)
tau= pm.Gamma('tau', alpha=10, beta=1.0, shape=(nbr_gauss,))
# Likelihood
Y_obs = pm.NormalMixture('Y_obs', w=p, mu=mu, tau=tau, observed=y_train)
prior_checks = pm.sample_prior_predictive(samples=50, random_seed=seed)
# Start the sampler
trace = pm.sample(draws=3000, tune=1000, step=pm.NUTS(), chains=1, cores=1)
# sample posterior predictive samples
ppc_trace = pm.sample_posterior_predictive(trace,
var_names=["mu", "tau", "p", "Y_obs"],
keep_size=True)
在估计参数(p、mu、tau)后,我目前无法检索原始曲线。实施是否正确?
解决方案
推荐阅读
- r-markdown - Rhtml 中的 TOC 故障
- jquery - 无法在所有浏览器和设备上更改“woocommerce_checkout_fields”上的年份
- javascript - 为什么我不能通过循环将多个值插入 Firebase?
- windows - 当没有为边框和标题栏打开强调色时,注册表中的位置是 Windows 标题栏颜色(Win 10)
- unity3d - 游戏对象在脚本中没有 Destroy() 的情况下自行删除
- discord - Discord.js v13 尝试创建标签系统
- python - python区间算术库
- apache-kafka - 使用 Spring 的 KafkaListener 优于 Apache 的 KafkaConsumer 的优势?
- python - 过滤并仅保留具有相同索引的行
- flutter - Flutter Linkfiy - 不包含链接文本的方法?