Sunday, 10 March 2013

Expectation Propagation for the Clutter Problem in Scala

Clutter Problem is a Gaussian density estimation task, presented by Thomas Minka to illustrate
Expectation Propagation algorithm in practice. This note presents a solution to the Clutter problem in Scala using Bayes-Scala package.

Read full text.

Friday, 22 February 2013

Linear Gaussian Model for robot localisation

The task is to predict the location of a robot given noisy observations of its current position 1. In a static localisation setup, it's assumed that robot is not moving while subsequent measurements of a robot location are taken. Whereas in a dynamic variant, robot's position is changing over the time. There are 4 different solutions presented to 1D localisation problem, including Kalman Filter 1, Canonical Gaussian 2,4, Bayes's theorem for Gaussian Variables 3 and Expectation Propagation 3,5.

Full text:

Friday, 25 January 2013

Modelling tennis skills on serve and return with Glicko 2 pairwise comparison model

This document presents the Glicko 2 1 pairwise comparison method for estimating skills of tennis players, both on serve and return. It starts with review of existing literature on modelling tennis skills. Next, it gives an overview on Glicko2 Tennis model, followed by an example of Scala code for calculating skills of tennis players. Later on, it demonstrates three examples of practical applications for tennis skills. The first one, is a study on historical skills of Roger Federer and Novak Djokovic. The second case, is about calculating probability of winning a point on serve and return at the beginning of a tennis match. The last example, illustrates how to predict outcomes of tennis matches using skills of tennis players on serve and return. Finally, Glicko2 is discussed in a context of potential improvements in modelling skills in tennis.

Read full article:

Friday, 18 January 2013

Plotting Gaussians, including univariate, multivariate and linear models

While working on Bayesian Networks in a continuous space, I'm plotting lots of Gaussian distributions representing prior, likelihood and posterior functions.  At first glance, it appeared quite simple to draw those functions, but in the end, it took me good amount of time to figure out how to do it and what tools should I use for this task. I documented it here: