3
$\begingroup$

Is there any good libraries that allow me to:

  1. Construct a Bayesian network manually
  2. Specify the conditional probabilities with any continuous PDF, not just Guassian
  3. Perform inference, either exact or approximate

I looked at the following libraries so far, none of them meet the 3 requirements:

  • pgmpy: only work on discrete distribution or linear Guassian distribution
  • bnlearn: same as pgmpy
  • gRain: only discrete distribution
  • Huggin: only discrete distribution and Guassian
  • deal: no support for inference
  • abn: same as deal
  • libpgm: only discrete distribution and Guassian
$\endgroup$
1
  • 1
    $\begingroup$ Investigate tensorflow, edward, and pymc $\endgroup$
    – Emre
    Apr 12, 2017 at 3:25

3 Answers 3

2
$\begingroup$

You can use pymc3. I am pretty sure it works for all the 3 requirements. http://pymc-devs.github.io/pymc3/

$\endgroup$
2
  • $\begingroup$ I don't see a way to construct Bayesian network (directed graphical model) using PyMC3, but it seems that Edward, which depends on PyMC3, has that support. $\endgroup$ Apr 14, 2017 at 6:07
  • 1
    $\begingroup$ Since Edward uses PyMC3, I am pretty sure you can build PGMs with PyMC3 directly. The implementation is not that hard. I have tried PGMPy but since you ask for any continuous pdf as your requirement, you need to use PyMC3. You just need to go a level deeper writing your conditional distributions as equations. The inference and analysis are as easy as it gets! $\endgroup$
    – ashudeep21
    Apr 15, 2017 at 18:15
1
$\begingroup$

Not a library, but a interactive GUI based tool is "samiam" (Sensitivity Analysis Modeling Inference and More) from a research group at UCLA.

I am not sure about your "continuous PDFs" requirement, whether it's possible to define them inside the samiam GUI.

samiam is free to download, but registration is required.

The size of the software is small, but java-based (ok, the jvm is not that small).

For API-access, you might call functions inside the inflib.jar file.

There also exists a "Batch tool" and a "Code Bandit" (code generator). Haven't used any of them.

$\endgroup$
1
$\begingroup$

Also have look at Genie (GUI) and SMILE (Lib) from BayesFusion (formerly University of Pittsburgh). Academic usage is free, but registration required.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.