我希望在Spark上使用MC-Stan,但 Google 似乎没有搜索到相关页面。
我想知道这种方法在 Spark 上是否可行,因此如果有人让我知道,我将不胜感激。
此外,我还想知道在 Spark 上使用 MCMC 的广泛使用方法是什么。我听说 Scala 被广泛使用,但我需要一些具有像样的 MCMC 库的语言,例如 MC-Stan。
是的,这当然是可能的,但需要更多的工作。Stan(以及我所知道的流行的 MCMC 工具)并非旨在通过 Spark 或其他方式在分布式环境中运行。一般来说,分布式 MCMC 是一个活跃的研究领域。对于最近的评论,我推荐可扩展贝叶斯推理模式(PoFSBI) 的第 4 节。您可能想要拆分大型 MCMC 计算有多种可能的方法,但我认为更直接的方法之一是拆分数据并在每个分区上运行具有相同模型的 Stan 等现成工具. 每个模型都将产生一个下后部,可以将其一起减少以形成后部。PoFSBI 讨论了几种组合此类子后验的方法。
我使用 pyspark 和 pystan整理了一个非常粗略的概念证明(python 是支持最多 Stan 和 Spark 的通用语言)。这是 PoFSBI 中加权平均共识算法的粗略且有限的实现,在微型 8-schools 数据集上运行。我不认为这个例子实际上很有用,但它应该提供一些关于将 Stan 作为 Spark 程序运行可能需要什么的想法:分区数据,在每个分区上运行 stan,组合子后验。