2013-04-02 80 views
1

請告知,一個貝葉斯推斷Java框架:貝葉斯推理Java框架龐大的數據集

1. Is open-source 
2. Can be used programmatically from Java app. 
3. Will be able to process 10 GB data-set running on a single host (node) 
4. NOT Mahout or any other Hadoop-based/distributed frameworks (see 3.) 

回答

3

您的數據大小不會成爲限制因素,這是您將要更新的模型的複雜性。如果它是一個樸素的樸素貝葉斯模型,那麼這很容易實現。如果你想要更復雜的東西,例如多連接的網絡,那麼模型的複雜性將決定你是否可以做出精確的推斷或者是否需要權衡近似算法。

Kevin Murphy最近更新了貝葉斯推斷軟件http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html的比較。我正在探索的一個開源軟件包是使用C++的libDAI(http://cs.ru.nl/~jorism/libDAI/),但我認爲它可以從Java中調用。它支持多種推理方法,包括似乎是一個相當不錯的近似算法的Loopy置信傳播。

1

也許秧雞適合您的賬單? http://www.cs.waikato.ac.nz/ml/weka/ 它肯定滿足要求1,2和4. 3應該可以像weka.core.Instances的自定義實現一樣進行操作,如果缺省的實現不提供某種「流式」數據,那麼不需要所有這些一次性駐留在記憶中 - 一段時間沒有使用它,所以我不確定。

+0

謝謝。是的,也許用weka.core.Instances的自定義實現Weka會做。 Weka的主要問題是數據集的大小。最新的Weka Explorer GUI無法使用10 GB數據,因爲它試圖將所有內容加載到內存中。 –