我希望使用MC-Stan http://mc-stan.org/ on Spark http://spark.apache.org/,但谷歌搜索似乎没有相关页面。
我想知道这种方法在 Spark 上是否可行,因此如果有人让我知道,我将不胜感激。
此外,我还想知道在 Spark 上使用 MCMC 的广泛使用的方法是什么。我听说 Scala 被广泛使用,但我需要一些具有像样的 MCMC 库的语言,例如 MC-Stan。
是的,这当然是可能的,但需要更多的工作。 Stan(以及我所知道的流行的 MCMC 工具)并非设计为通过 Spark 或其他方式在分布式环境中运行。一般来说,分布式 MCMC 是一个活跃的研究领域。对于最近的评论,我推荐第 4 节可扩展贝叶斯推理的模式 http://arxiv.org/abs/1602.05221(PoFSBI)。您可能想要拆分大型 MCMC 计算有多种可能的方法,但我认为更直接的方法之一是拆分数据并在每个分区上运行具有相同模型的现成工具(例如 Stan) 。每个模型都会产生一个次后部可以一起减少以形成后部。 PoFSBI 讨论了组合此类次后验的几种方法。
I've 放在一起 https://gist.github.com/strongh/0ba143d21e2382e3ec61f6a0bdc2f55d使用 pyspark 和 pystan 进行了非常粗略的概念验证(python 是对 Stan 和 Spark 支持最多的通用语言)。这是 PoFSBI 中加权平均一致性算法的粗略且有限的实现,在小型 8 所学校数据集上运行。我不认为这个例子实际上非常有用,但它应该提供一些关于将 Stan 作为 Spark 程序运行可能需要的东西的想法:分区数据,在每个分区上运行 stan,组合子后部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)