DagDig
DagDig is a program for experimenting with Bayesian belief network
learning algorithms. A lot of the experiments in my
thesis
are produced using this software. I would appreciate if you could let
me know whether DagDig is useful
for you.
Disclaimer
It works for me and it may work for you. But no rights whatsoever
can be claimed by using or changing it.
Copyright
GNU General Public Licence.
Download
Get the zipped source code here.
Get the zipped executable here.
Installation
If you have the zipped executable, unzip it and start dagdig.exe.
If you have the zipped source code, unzip it. Enclosed is a Visual C++ 6 project,
which should compile as is.
But it should compile under any decent C/C++ compiler just as well because it does
not use any compiler specific libraries (and hopefully nothing VC++6 specific).
Just create a makefile/project including all .cpp-files in the dagdig directory
to compile.
How it works
It is command line driven, so you can interact with DagDig directly
by entering commands. The following commands are accepted:
- cls -- clear screen
- delete <nodenr> -- remove node from the list of variables
- divergence -- print divergence between the two networks in memory
- estimate [structure | distribution | network | covariancematrix | causalgraph] -- apply a learning algorithm
- generate [structure | distribution | network | observations] -- generate random info
- help -- print this message
- hustle -- randomly hustle the node ordering
- load [structure | network | observations | obcounts] -- load info from file
- parentset <nodenr> -- learn parentset of a single node
- print [<varname>] -- print out the value of a variable, if no argument is given, all variables are printed
- quit -- exit DagDig
- rem [<text>] -- remark, useful in scripts
- save -- store information to file
- set <varname> [<val1>] [<val2>] -- assign value to variable
- score -- print score of current network w.r.t. database of observations
- shift <nodenr1> <nodenr2> -- manipulate node ordering
- start <scriptfile> -- execute commands from a script file
- swap <nodenr1> <nodenr2> -- manipulate node ordering
- sswap <nodenr1> <nodenr2> -- manipulate node ordering
- up -- manipulate node ordering
See source code for details.
TODO
Write a descent manual.
Include more learning algorithms
Include support for continuous variables
Include support for missing values
I am in the process of converting the system into something more
generally usefull by translating it into Java. May take some time to
appear though.
Last updated: 5 Dec 2000 webmaster