2012-02-02 88 views
9

Sto cercando una libreria per creare reti Bayes ed eseguire l'apprendimento e l'inferenza su di esse in Scala (o Java, in caso di mancanza di una soluzione migliore). La biblioteca dovrebbe essere attivamente mantenuta, performante, preferibilmente facile, sicuramente ben documentata a meno che l'utilizzo non sia molto semplice. Le alternative gratuite, open source e commerciali sono ok, ma per le soluzioni commerciali è richiesta una prova gratuita.reti bayesiane in Scala

Una soluzione ideale sarebbe l'equivalente di ciò che nel mondo .NET è Infer.NET di Microsoft Research, ma più documentato.

Grazie in anticipo!

+1

Questo potrebbe essere utile http://stackoverflow.com/questions/5363855/implement-bayes-net/5364920 # 5364920 –

+0

e qui c'è un collegamento diretto a [weka] (http://weka.wikispaces.com/Use+WEKA+in+your+Java+code) (anche citato nella risposta che Łukasz ti ha indirizzato) – wmz

+0

@ ŁukaszBachman: Grazie , ma ho già guardato JavaBayes e l'ho trovato vecchio e non performante, anche se abbastanza documentato ... – em70

risposta

9

FACTORIE è un progetto giovane, ma si adatta il disegno di legge, è attuata in Scala:

Factorie è un toolkit per la modellazione probabilistica schierabili, implementato come una libreria software in Scala. Fornisce agli utenti con un linguaggio succinto per la creazione di grafici di fattori relazionali, la stima dei parametri e l'inferenza di esecuzione.

E 'sviluppato da Andrew McCallum e il suo laboratorio a UMass, che sono anche responsabili per l'enorme utile MALLET machine learning toolkit.

+3

FACTORIE potrebbe essere grandioso, ma non è semplice - almeno per me - e la documentazione non soddisfa il requisito ... +1 in ogni caso – em70

+0

FACTORIE supporta la rete bayesiana fuori dalla scatola? –

+0

Ho passato le ultime 24 ore su FACTORIE e sono quasi pronto per eseguire un algoritmo di naivebay (credo). Mi piace molto l'organizzazione _ma_ la documentazione è _SEVERELY_ mancante, come citato da @ em70 –

1

Alcune alternative Java per Infer.NET sono stati presentati come risposte a this question. Quindi, penso che in sostanza stai chiedendo di dare un seguito a quella domanda (è stato chiesto durante la seconda metà del 2010) rispetto a Java o alla soluzione completamente basata su Scala.

4

Si potrebbe voler esaminare SMILE. È gratuito e ha API Java. Altre opzioni gratuite in Java sono UnBBayes e SamIam.

  • SMILE

    SMILE (Modellazione strutturale, inferenza, e l'apprendimento del motore) è completamente libreria portabile di classi C++ di attuazione metodi grafici decisionali teorica, come bayesiani net-opere e influenza Diagrammi , direttamente riconducibili all'inclusione nei sistemi intelligenti.

  • UnBBayes

    UnBBayes è un framework di rete probabilistica scritto in Java. Ha sia una GUI che un'API con deduzione, campionamento, apprendimento e valutazione . Supporta BN, ID, MSBN, OOBN, HBN, MEBN/PR-OWL, PRM, struttura, parametro e apprendimento incrementale.

  • SamIam

    Samiam comprende due componenti principali: un'interfaccia utente grafica e un motore ragionamento. L'interfaccia grafica consente agli utenti di sviluppare modelli di rete bayesiani e di salvarli in una varietà di formati. Il motore di ragionamento supporta molte attività tra cui: inferenza classica; parametro stima; compromessi spazio-tempo; analisi di sensibilità; e spiegazione-generazione basata su MAP e MPE.

opzioni Pure Scala e libero sono Factorie (già citato) e Figaro. Ma a Figaro manca attualmente una parte di apprendimento.

  • Figaro - Probabilistic Modeling

    modelli Figaro sono strutture di dati nel linguaggio di programmazione Scala, che è interoperabile con Java, e possono essere costruiti, manipolati, e utilizzati direttamente all'interno di qualsiasi programma di Scala o Java.