2013-04-02 82 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数据,因为它试图将所有内容加载到内存中。 –