Skip to content

joshgrib/bn-playground

Repository files navigation

bn-playground

bn-play.firebaseapp.com

A tool for building Bayesian Networks(BNs), visualizing the probabilities, running simulations with interventions, and seeing the results to understand what's going on. This is being built by a student of causality so this is ideally an educational tool to learn about BNs.

Commands

  • vue ui - Start the UI and use it to run tasks
  • yarn - Project setup, install dependencies
  • yarn serve - Compiles and hot-reloads for development
  • yarn build - Compiles and minifies for production, generating static site files in ./dist
  • firebase deploy - Deploy production files to Firebase
  • yarn present - Use cleaver to work on the presentation and watch for changes. The output file is dist/presentation.html, which is also deployed to Firebase

Reference

Todo

  • [/] Write paper

  • [/] Make presentation

  • [_] Show realtime simulation with dashed/colored edges

  • [_] Add automated testing

  • [_] Wrap in electron to deploy as a desktop app

  • [_] Detect cycle in graph

  • [_] Show conditional independencies

  • [_] Toggle hierarchical layout

  • [_] Import/Export graph (add method in BN class)

  • [_] Export probability table CSV

  • [_] Edit node name - click pencil icon to change title to input, bind to data so it changes as you type

  • [_] Change the color of a node?

  • [_] Learn network structure from data

Done

  • Show BN visually
  • Add and remove nodes
  • Add and remove edges
  • View node parents and children
  • See Markov blanket for a node
  • Highlight node relations (parents, children, Markov blanket)
  • Firebase deploy
  • Show if node is a collider
  • Interface to show conditional probability tables for nodes and edit like http://www.cs.man.ac.uk/~gbrown/bayes_nets/
    • Save changes to CPT values
  • Run simulation
    • Show results in a histogram
  • do() on a node
  • Fix bug where adding node gets the wrong name at first
    • Don't think this used to happen, maybe it happened when I moved the interaction funcions into the BN class
    • Maybe just go back to the old menu for adding nodes
    • Happening for edges too - new edges don't get arrows until you click on a node
  • Fix bug with adding edges messing up simulation
  • Made node color a different blue when in do() mode
  • Reveal histogram element dynamically after getting results
  • Add title tooltips to explain things, expecially the CPT
  • Move to new repo
  • Host on Github pages - doesn't work well

About

A tool for learning and playing with Bayesian Networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published