SBNet
SBNet is a software package that will learn the
structure of dynamic Bayesian networks given a set of data. Included in this distribution page are the
following files:
SBNet Linux distribution
(with source code)
SBNet Windows Dev
Studio .net distribution (with source code)
SBNet errata (for both Windows
and Linux distributions)
For those that would like to modify the code for
SBNet, I’ve written a high-level overview of the code as it exists
currently. Here is a zip file containing both a UML diagram for
the classes in SBNet as well as a text document for a description on what
different objects are responsible for in SBNet.
Here are some example script files that can help in understanding
how to use SBNet
·
Learn
BN Structure Example (also uses continuous RVs and quantizes them, thanks
to Dae at the Mind)
·
Surrogate Dataset Confidence Examples
·
Simple Data
Generation Example
A simple script to generate data
from a DBN with 5 RVs.
Script demonstrating how robustness
testing can be performed, there is a batch file that shows how to run SBNet,
but as the data is not included in the distribution, you can’t run this batch
file. However, all of the output files
created when running the batch file are included.
I have written some articles on how to use different
functionalities of SBNet. They are
located on this. This is a valuable source
of information and should be consulted if you have question on how to use SBNet
to get something done.
There is also a known-bugs page on this wiki that
should be consulted.
SBNet understands a relatively simple grammar for
creating Bayesian networks, loading data and searching for structures (among
other things). During SBNet’s development, I’ve endeavored to create a package
that anyone could use. However, in the
end, it is still “research code”. At
this point in time, I’m creating this distribution primarily for members of the
research groups I’ve spoken with, but anyone is free to download and use SBNet
(I’m releasing it under the standard GNU license).
I’ve included a simple MS PowerPoint presentation to
give the very basics of SBNet. I’ve also
included some example script files that may be helpful in determining how to
use SBNet to run a task. SBNet has a
full interactive mode and to automate SBNet’s use,
script files should be written and piped into SBNet. E.g., at a prompt type,
sbnet < inputfile.txt >
outputfile.txt
It’s very important that the inputfile.txt end with
the “quit” command. At this point in
time, SBNet does not detect the end of the input (this will hopefully change
soon) and without the quit command, SBNet will infinitely output prompts
causing the outputfile to grow to huge proportions very quickly and
indefinitely.
SBNet is written in ANSI C++. The two distributions linked to on this page
have all of the same source files. One
distribution is for those using Microsoft’s Development Studio .net. This is the programming environment I prefer,
but again, none of the code is written that requires windows (with a small
exception of code that reads in the contents of directories—such code is not
specified by the C++ specifications and therefore must be platform dependent). The other distribution is for Linux and
includes a Makefile.
See the “installing.txt” file included with the distribution.
Almost everything about how to use SBNet is detailed
in the grammar.txt file, though this is a reference source and not a
tutorial. This file is included in both
distributions, but is also linked to on this web page.
If you have questions, feel free to email me. I cannot guarantee I will be able to respond
but if I have adequate temporal resources, I will do my best to answer
questions.