Learning and visualizing Bayesian Networks made easy
- Allow beginners to easily learn and visualize Bayesian Networks;
- Help researchers to visualize networks learned in all the main libraries, such as bnlearn and PGMpy;
- Provide visualization tools for debugging and comparing structures and probability tables.
We are currently in early stages of development.
If you want to give an incentive or help us to make this work, please follow this project and create issues so we can discuss your ideas.
The app is divided in two major parts:
1. The Bayesian Networks learning and inference server
2. The Bayesian Networks visualization server
- Python 3.8
- Django
- PGMPy
- PyMC3
- Node.js
- React.js
- D3.js
- Ant Design
-
Create a Node.js + React webserver capable of:
Opening JSON files with network models;- Plotting the networks with D3.js:
The plot will contain the edges and nodes;- Each nodes when clicked
will display its Conditional Probability Table.
-
Create a Django webserver capable of:
- Receiving a CSV dataset;
- Learning a network based on the CSV dataset:
- With selectable methodology (HillClimb, PC or K2)
- Return the JSON with the learned network
-
Add methods that allow learned Bayesian Network to be compared to the base model
-
Add methods for combining Bayesian networks
- Koller, D., & Friedman, N. (2009). Probabilistic graphical models: principles and techniques. MIT press.
- Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press.
- Neapolitan, R. E. (2004). Learning bayesian networks (Vol. 38). Upper Saddle River, NJ: Pearson Prentice Hall.