请就 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.)
请就 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.)
您的数据大小不会成为限制因素,而是您将要更新的模型的复杂性。如果它是一个简单的朴素贝叶斯模型,那么这很容易实现。如果您想要更复杂的东西,例如多连接网络,那么模型复杂性将决定您是否可以进行精确推理,或者是否需要权衡取舍,例如近似算法。
Kevin Murphy 最近更新了贝叶斯推理软件比较,网址为http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html。我正在探索的一个开源包是 libDAI ( http://cs.ru.nl/~jorism/libDAI/ ),它使用 C++,但我认为它可以从 Java 中调用。它支持多种推理方法,包括循环信念传播,这似乎是一种非常好的近似算法。
也许 weka 符合您的要求?http://www.cs.waikato.ac.nz/ml/weka/ 它肯定满足要求 1、2 和 4。3 应该可以使用类似 weka.core.Instances 的自定义实现的东西,如果默认的没有提供某种数据的“流式传输”,因此并非所有数据都需要立即驻留在内存中 - 有一段时间没有使用它,所以我不确定。