2016-04-08 33 views
2

我希望在Spark上使用MC-Stan,但Google似乎沒有搜索到任何相關頁面。MC-Stan on Spark?

我不知道這種方法是否可能在Spark上,因此如果有人讓我知道,我將不勝感激。

此外,我還想知道在Spark上使用MCMC的廣泛使用方法是什麼。我聽說Scala被廣泛使用,但我需要一些具有像MC-Stan一樣體面的MCMC庫的語言。

回答

7

是的,這當然有可能,但需要多一點工作。 Stan(我知道流行的MCMC工具)並不旨在通過Spark或其他方式在分佈式環境中運行。一般來說,分佈式MCMC是一個積極研究的領域。對於最近的評論,我推薦Patterns of Scalable Bayesian Inference(PoFSBI)的第4部分。有多種可能的方法可能需要分割大型MCMC計算,但我認爲其中一種更直接的方法是分割數據,並在每個分區上運行像現有工具(如同型號的Stan) 。每個模型將產生後部,它們可以一起縮小以形成後部。 PoFSBI討論了組合這些子體的幾種方法。

我有put together使用pyspark和pystan(Python是大多數Stan和Spark支持的通用語言)的一個非常粗略的概念驗證。這是在PoFSBI中加權平均共識算法的粗略和有限的實現,運行在微小的8學校數據集上。我不認爲這個例子實際上非常有用,但它應該提供一些關於運行Stan作爲Spark程序可能需要的一些想法:分區數據,在每個分區上運行stan,組合子場景。

+0

我認爲這是有趣的,所以我開始適應成凹凸庫這樣的:https://github.com/strongh/stark – homer

+0

該項目是很有趣!謝謝你的回答,我會仔細看看你提到的參考文獻。 – Kim

0

也許rstan和sparklyr :: spark_apply是您的最佳選擇