SkillAgentSearch skills...

Pmtk3

Probabilistic Modeling Toolkit for Matlab/Octave.

Install / Use

/learn @probml/Pmtk3
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Note: as of 2019, PMTK is no longer supported - use at your own risk. The new version of my book (which is in progress) now uses the Python code available from https://github.com/probml/pyprobml/.

PMTK is a collection of Matlab/Octave functions, written by Matt Dunham, Kevin Murphy and <a href="https://github.com/probml/pmtk3/wiki/contributingAuthors">various other people</a>. The toolkit is primarily designed to accompany Kevin Murphy's textbook <a href="http://people.cs.ubc.ca/~murphyk/MLbook"> Machine learning: a probabilistic perspective</a>, but can also be used independently of this book. The goal is to provide a unified conceptual and software framework encompassing machine learning, graphical models, and Bayesian statistics (hence the logo). (Some methods from frequentist statistics, such as cross validation, are also supported.) Since December 2011, the toolbox is in maintenance mode, meaning that bugs will be fixed, but no new features will be added (at least not by Kevin or Matt).

PMTK supports a large variety of probabilistic models, including linear and logistic regression models (optionally with kernels), SVMs and gaussian processes, directed and undirected graphical models, various kinds of latent variable models (mixtures, PCA, HMMs, etc) , etc. Several kinds of prior are supported, including Gaussian (L2 regularization), Laplace (L1 regularization), Dirichlet, etc. Many algorithms are supported, for both Bayesian inference (including dynamic programming, variational Bayes and MCMC) and MAP/ML estimation (including EM, conjugate and projected gradient methods, etc.)

To get the code, click on the "Download zip" button on the right hand side of github, or just clone this repository.

PMTK builds on top of several existing packages, available from <a href="https://github.com/probml/pmtksupport">pmtksupport</a>, and provides a unified interface to them. In addition, it provides readable "reference" implementations of many common machine learning techniques. The vast majority of the code is written in Matlab. (For a brief discussion of why we chose Matlab, click <a href="https://github.com/probml/pmtk3/wiki/WhyMatlab">here</a>. Most of the code also runs on <a href="https://github.com/ubcmatlabguide/ubcmatlabguide/wiki/Octave">Octave</a> an open-source Matlab clone.) However, in a few cases we also provide wrappers to implementations written in C, for speed reasons. PMTK has over 67,000 lines.

As you can tell by the name, PMTK3 is the third version of PMTK. Older versions are obsolete, but are briefly described <a href = "https://github.com/probml/pmtk3/wiki/pmtkVersions">here</a>.

Related Skills

View on GitHub
GitHub Stars1.6k
CategoryDevelopment
Updated2d ago
Forks788

Languages

HTML

Security Score

95/100

Audited on Mar 29, 2026

No findings