PMTK: Probabilistic Modeling Toolkit v1 (deprecated)
PMTK: Probabilistic Modeling Toolkit v1 (deprecated)
- Source code can be obtained from
google code
- Zip file of code as of 26 april 2009
- Developed by Kevin Murphy and Matt Dunham, October 2008 -- April 2009, then abandoned
as attention turned to pmtk2
- Changelog
- PMTK1 requires Matlab 2008a or newer to run,
since it uses the latest object-oriented features of Matlab.
- Google groups
email list: please join for helpful discussion with fellow users
and developers.
Documentation
- Slides from the presentation
at the Probabilistic
programming workshop at NIPS 2008.
-
List of
demos/examples,
Auto-generated by makeDocumentation.m.
This shows the source code for all the examples, and the output that they
produce.
- Class inheritance
diagram, auto-generated using viewClassTree.
The main top-level
class is probDist, which is divided into paramFreeDist,
and paramDist (parametric distribution).
ParamDist contains the following subclasses:
compoundDist, ondProbDist,
and paramJointDist.
The joint distribution class contains
graphicalModel as a subclass.
Installation
Basics
To get started, do the following:
unzip pmtk.zip, start Matlab, and then type
cd pmtk
loadPMTK
To check it's working, type
testPMTK
To run
all the demos
listed here
you can use
runDemos
This takes about 20 minutes.
Compiling C code
For advanced users, you may wish to compile
some of the C code as follows:
mex -setup % only needed once per matlab installation
compilePMTKmex
After compiling, check that
'testPMTK' still works.
If not, you can roll back
to pure matlab code using
removePMTKmex
PMTK includes
Tom Minka's
lightspeed
2.2 library. There are some problems compiling this on Mac's.
Hence PMTK will not compile the C version of the lightspeed functions
if it detects you are using a Mac.
Graphviz
PMTK includes the graphlayout
class, which can be used to visualize graph structures,
and then edit them interactively.
For best results, first install
graphviz.
Then add it to your path.
To check it installed correctly, type the following from within matlab
system('neato -V')
As an example of an automatically produced
layout (using graphviz), click
here.
If you cannot, or do not want to, install graphviz,
graphlayout can still do a "bare bones" layout.
Examples of use
Here are a few "tasters"