2012-02-02 17 views
9

estoy buscando una biblioteca para crear redes de Bayes y llevar a cabo el aprendizaje y la inferencia sobre ellos en Scala (o Java, en el caso de la falta de una solución mejor). La biblioteca se debe mantener de forma activa, de alto rendimiento, preferiblemente fácil, definitivamente bien documentada a menos que el uso sea realmente sencillo. Las alternativas gratuitas, de código abierto y comerciales están bien, pero para las soluciones comerciales se requiere una prueba gratuita.redes bayesianas en Scala

Una solución ideal sería el equivalente a lo que en el mundo .NET está Infer.NET por Microsoft Research, pero más documentado.

¡Gracias de antemano!

+1

Esto podría ser útil http://stackoverflow.com/questions/5363855/implement-bayes-net/5364920 # 5364920 –

+0

y aquí está el enlace directo a [weka] (http://weka.wikispaces.com/Use+WEKA+in+your+Java+code) (también mencionado en la respuesta Łukasz lo recomendó) – wmz

+0

@ ŁukaszBachman: Gracias , pero ya he visto JavaBayes y me pareció antiguo y no funcional, aunque bastante documentado ... – em70

Respuesta

9

FACTORIE es un proyecto joven, pero encaja a la perfección y se implementa en Scala:

Factorie es un conjunto de herramientas para el modelado probabilístico de despliegue, implementado como una biblioteca de software en Scala. Proporciona a sus usuarios un lenguaje sucinto para crear gráficos de factores relacionales, estimando los parámetros y realizando inferencias.

Es desarrollado por Andrew McCallum y su laboratorio en la Universidad de Massachusetts, que también son responsables de la enorme utilidad MALLET machine learning toolkit.

+3

FACTORIE puede ser genial, pero no es sencillo, al menos para mí, y la documentación no cumple con el requisito ... +1 de todos modos – em70

+0

¿FACTORIE es compatible con la red bayesiana? –

+0

He pasado las últimas 24 horas en FACTORIE y estoy casi listo para ejecutar un algoritmo de naivebayes (creo). Me gusta mucho la organización _pero_ la documentación es _SEVERELY_ que falta, como @em70 mencionó –

1

Algunas alternativas a Java Infer.NET se presentaron como respuestas a this question. Por lo tanto, creo que básicamente está preguntando sobre el seguimiento de esa pregunta (se hizo durante el segundo semestre de 2010) con respecto a Java o a la solución totalmente basada en Scala.

4

Es posible que desee ver en la sonrisa. Es gratis y tiene API de Java. Otras opciones gratuitas en Java son UnBBayes y SamIam.

  • SMILE

    SONRISA (estructural de modelado, la inferencia y aprendizaje motor) es un totalmente biblioteca portátil de clases de C++ aplicación métodos de toma de la teoría de gráficos, como net-obras y la influencia bayesianos diagramas, directamente susceptibles de inclusión en sistemas inteligentes.

  • UnBBayes

    UnBBayes es un marco de red probabilístico escrito en Java. Tiene tanto una GUI como una API con inferencia, muestreo, aprendizaje y evaluación . Es compatible con BN, ID, MSBN, OOBN, HBN, MEBN/PR-OWL, PRM, estructura, parámetro y aprendizaje incremental.

  • SamIam

    Samiam incluye dos componentes principales: una interfaz gráfica de usuario y un motor de razonamiento. La interfaz gráfica permite a los usuarios desarrollar modelos de red Bayesian y guardarlos en una variedad de formatos. El motor de razonamiento admite muchas tareas que incluyen: inferencia clásica; parámetro estimación; intercambios de tiempo y espacio; análisis de sensibilidad; y explicación-generación basada en MAP y MPE.

opciones Scala y gratuitas puros son Factorie (ya mencionado) y Figaro. Pero Figaro actualmente no tiene parte de aprendizaje.

  • Figaro - Probabilistic Modeling

    modelos Figaro son estructuras de datos en el lenguaje de programación Scala, con características de compatibilidad con Java, y se pueden construir, manipular, y utilizados directamente dentro de cualquier programa de Scala o Java.