我正在寻找一个库来创建贝叶斯网络,并在Scala (或Java,如果缺乏更好的解决方案)中对它们执行学习和推理。库应该是积极维护的,性能良好的,最好是简单的,一定要有良好的文档记录,除非用法真的很简单。免费、开源和商业替代方案都可以,但对于商业解决方案,则需要免费试用。
理想的解决方案应该等同于微软研究院在.NET世界中的Infer.NET,但有更多的文档。
提前感谢!
发布于 2012-02-02 21:34:21
FACTORIE是一个年轻的项目,但它符合要求,并且是用Scala实现的:
Scala是一个用于可部署概率建模的工具包,在
中以软件库的形式实现。它为用户提供了一种简洁的语言,用于创建关系因子图、估计参数和执行推理。
它是由Andrew McCallum和他在UMass的实验室开发的,他们也是非常有用的MALLET machine learning toolkit的负责人。
发布于 2012-07-07 02:26:12
你可能会想看看微笑。它是免费的,并且有Java API。Java语言中的其他免费选项是UnBBayes和SamIam。
(结构建模、推理和学习引擎)是一个完全可移植的C++类库,它实现了图形化决策理论方法,例如贝叶斯网络和影响图,可以直接包含在智能系统中。
UnBBayes是一个用Java编写的概率网络框架。它同时具有GUI和API,具有推理、采样、学习和评估功能。它支持BN,ID,MSBN,OOBN,HBN,MEBN/PR-OWL,PRM,结构,参数和增量学习。
Samiam包括两个主要组件:图形用户界面和推理引擎。图形界面允许用户开发贝叶斯网络模型,并以各种格式保存它们。推理引擎支持许多任务,包括:经典推理;参数估计;时空权衡;灵敏度分析;以及基于MAP和MPE的解释生成。
纯Scala和免费选项是FACTORIE (已经提到)和Figaro。但Figaro目前缺乏学习部分。
Figaro模型是Scala编程语言中的数据结构,它可以与Java互操作,并且可以在任何Scala或Java程序中直接构造、操作和使用。
发布于 2012-02-03 00:13:38
也许Banjo符合这个条件?我不确定它的开发有多活跃,但我知道它至少已经存在了几年……(我自己从来没有用过它)。
Banjo: Bayesian Network Inference with Java Objects
https://stackoverflow.com/questions/9112557
复制相似问题