Байесовские сети в Скале - PullRequest
       22

Байесовские сети в Скале

9 голосов
/ 02 февраля 2012

Я ищу библиотеку для создания байесовских сетей и выполнения обучения и умозаключений на них в Scala (или на Java, в случае отсутствия лучшего решения).Библиотека должна быть активно поддерживаемой, производительной, желательно простой, определенно хорошо документированной, если ее использование не является действительно простым.Свободные альтернативы с открытым исходным кодом и коммерческие альтернативы вполне приемлемы, но для коммерческих решений требуется бесплатная пробная версия.

Идеальным решением будет эквивалент того, что в мире .NET представляет собой Infer.NET от Microsoft Research, нобольше задокументировано.

Заранее спасибо!

Ответы [ 5 ]

9 голосов
/ 02 февраля 2012

FACTORIE - молодой проект, но он отвечает всем требованиям и реализован в Scala:

FACTORIE - набор инструментов для развертываемого вероятностного моделирования, реализован в виде библиотеки программного обеспечения в Scala. Он предоставляет своим пользователям сжатый язык для создания реляционных факторных графов, оценки параметры и выполнение вывода.

Он разработан Эндрю МакКаллом и его лабораторией в UMass, которые также несут ответственность за чрезвычайно полезный MALLET инструментарий для машинного обучения .

4 голосов
/ 06 июля 2012

Возможно, вы захотите заглянуть в УЛЫБКУ. Это бесплатно и имеет Java API. Другими бесплатными опциями в Java являются UnBBayes и SamIam.

  • SMILE

    SMILE (Структурное моделирование, логический вывод и учебный движок) - это полностью переносимая библиотека классов C ++, реализующая графический методы принятия решений, такие как байесовские сети и влияние диаграммы, непосредственно поддающиеся включению в интеллектуальные системы.

  • UnBBayes

    UnBBayes - это вероятностная сетевая среда, написанная на Java. Она имеет как графический интерфейс, так и API с выводом, выборкой, обучением и оценка. Он поддерживает BN, ID, MSBN, OOBN, HBN, MEBN / PR-OWL, PRM, структура, параметр и пошаговое обучение.

  • SamIam

    Samiam включает в себя два основных компонента: графический интерфейс пользователя и двигатель рассуждения. Графический интерфейс позволяет пользователям разрабатывать байесовские сетевые модели и сохраните их в различных форматах. Рассуждение Движок поддерживает множество задач, в том числе: классический вывод; параметр предварительный расчет; пространственно-временные компромиссы; Анализ чувствительности; а также генерация объяснений на основе MAP и MPE.

Pure Scala и бесплатные опции FACTORIE (уже упоминалось) и Figaro. Но Фигаро в настоящее время не хватает учебной части.

  • Фигаро - вероятностное моделирование

    Модели Figaro - это структуры данных на языке программирования Scala, который совместим с Java, и может быть создан, манипулировать, и используется непосредственно в любой программе Scala или Java.

1 голос
/ 04 января 2015

В настоящее время существует библиотека Scala:

https://github.com/danielkorzekwa/bayes-scala

1 голос
/ 07 февраля 2012

Некоторые Java-альтернативы Infer.NET были представлены как ответы на на этот вопрос .Итак, я думаю, что в основном вы спрашиваете либо о продолжении этого вопроса (он был задан во второй половине 2010 года) в отношении Java, либо решения полностью на основе Scala.

1 голос
/ 02 февраля 2012

Возможно, Банджо отвечает всем требованиям? Я не уверен, насколько активно он разрабатывается, но я знаю, что он существует не менее нескольких лет ... (никогда не использовал его сам).

Банджо: Байесовский сетевой вывод с объектами Java

...