Skip to content

klgraham/watershed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Watershed

Build Status

Watershed provides a framework for working with Probabilistic Graphical Models (PGMs) in Clojure. It's designed with experimentation and learning in mind, so you can quickly define your own PGM and perform queries. At present, this is setup mainly for analyzing Bayesian Networks, which are also Directed Acyclic Graphs.

Probability distributions currently included:

* Uniform
* Standard Normal
* Boolean (true/false)
* Bernoulli
* Exponential
* Discrete Uniform
* Poisson
* Binomial
* Fair coin
* Biased coin
* Pair of N-Sided Dice

Bayesian Networks currently included:

* Rain example

Planned updates:

* Convert all basic distribution code to call Incanter functions. No need to reinvent the wheel.
* Add Bayesian Networks:
  * Student example from Koller & Friedman's PGM textbook

Installation

Leiningen

Add the following to your :dependencies in project.clj:

[watershed "0.2.0-SNAPSHOT"]

Maven

<dependency>
  <groupId>watershed</groupId>
  <artifactId>watershed</artifactId>
  <version>0.2.0-SNAPSHOT</version>
</dependency>

Usage

For now, please look at the examples in examples.clj. They should all be straightforward. There are two PGM examples:

1. the common "Rain" example
2. the Student's example

License

Copyright © 2015 Kenneth Graham

Distributed under the Eclipse Public License, same as Clojure.