Tutorials & Examples
Tutorials
The following tutorials provide a step-by-step introduction to Infer.NET. Can be viewed through the Examples Browser.
- Two coins - a first tutorial, introducing the basics of Infer.NET.
- Truncated Gaussian - using variables and observed values to avoid unnecessary compilation.
- Learning a Gaussian - using ranges to handle large arrays of data; visualising your model.
- Bayes Point Machine - demonstrating how to train and test a Bayes point machine classifer.
- Clinical trial - using if blocks for model selection to determine if a new medical treatment is effective.
- Mixture of Gaussians - constructing a multivariate mixture of Gaussians.
String Tutorials
The following tutorials provide an introduction to an experimental Infer.NET feature: inference over string variables. The first two tutorials can be viewed through the Examples Browser, and the third one is available as a separate project.
- Hello, Strings! - introduces the basics of performing inference over string variables in Infer.NET.
- StringFormat Operation - demonstrates a powerful string operation supported in Infer.NET, StringFormat.
- Motif Finder - defining a complex model combining string, arrays, integer arithmetic and control flow statements.
Short Examples
Short examples of using Infer.NET to solve a variety of different problems. Can be viewed through the Examples Browser.
- Bayesian PCA and Factor Analysis - how to build a low dimensional representation of some data by linearly mapping it into a low dimensional manifold.
- Rats example from BUGS - a hierarchical normal model, used to illustrate Gibbs sampling.
- Click model - an information retrieval example which builds a model to reconcile document click counts and human relevance judgements of documents.
- Difficulty versus ability - a model of multiple-choice tests and crowdsourcing.
- Gaussian Process classifier - a Bayes point machine that uses kernel functions to do nonlinear discrimination.
- Recommender System - a matrix factorization model for collaborative filtering.
- Student skills - cognitive assessment models for inferring the skills of a test-taker.
- Chess Analysis - comparing the strength of chess players over time.
- Discrete Bayesian network - uses Kevin Murphy’s Wet Grass/Sprinkler/Rain example to illustrate how to construct a discrete Bayesian network, and how to do parameter learning within such a model.
Longer Examples
- Latent Dirichlet Allocation - this example provides Infer.NET implementations of the popular LDA model for topic modeling. The implementations pay special attention to scalability with respect to vocabulary size, and with respect to the number of documents. As such, they provide good examples for how to scale Infer.NET models in general.
- Mixed Membership Stochastic Block Model - models relational information among objects (for example individuals in an social network).
- Click through model - a web search example where you convert a sequence of clicks by the user into inferences about the relevance of documents.
- Image classifier example - an image search example where you classify tagged images by example.
- Clinical trial - the clinical trial tutorial example with an interactive user interface.
- Monty Hall problem - an Infer.NET implementation of the Monty Hall problem, along with a graphical user interface.
- Conference reviewer model - for estimating submission quality in the light of noisy, biased or uncertain reviewers.
- The separation of model and inference
- Aggregation models for Crowdsourcing
- BCCWords: Bayesian Text Sentiment Analysis using Crowdsourced Annotations
- Multinomial Logistic Regression
- From the forums:
How-to Guides
How to achieve various general tasks in Infer.NET.
- How to handle missing data - how to cope with situations where some observations of a variable are missing.
- How to build scalable applications - how to scale your applications to cope with large data sets and large value ranges.
- How to represent large irregular graphs - how to represent large graph structures efficiently.
- How to save distributions to disk - how to serialize the distribution classes.
- How to do causal inference