In December 2007, we published a paper about the application of TrueSkill to all recorded data of professional and semi-professional Chess play from 1850 to 2006. The dataset can be obtained from ChessBase. We are very happy to be able to release the F# source code that performed all these massive computations. A few things to bear in mind when running this code:
The attached ZIP file contains the entire source code which should compile without problems with F# 1.9.3.14. You can either load the solution in Visual Studio 2008 or simply run build.bat form the command line - in either case you will end up with a chessanalysis.exe program or an analysis.exe program. If you want to try out the application, we included the first 1,000 lines of match outcomes (this is part of the first 5 years of data we have).
As for running the code, here are the parameter switches of the command line application:
-no-safe Does not save results predictions (default: off) -q Verbosity level off; only works on single runs (default: on) -N <int> First N games only (default: ALL) -delta <float> Maximum deviation in any marginal for convergence (default: 0.01) -muS <float> Mean of prior skill belief (default: 1200) -sigmaS <float> Standard deviation of prior skill belief (default: 400) -muD <float> Mean of prior draw margin belief (default: 300) -sigmaD <float> Standard deviation of prior draw margin belief (default: 100) -beta <float> Standard deviation of performance distr. (default: 600) -tauS <float> Standard deviation of skill dynamics distr. (default: 40) -tauD <float> Standard deviation of draw margin dynamics distr. (default: 10) -server <string> SQL server name for output (default: 'camresapga01') -prefix <string> Table name prefix for output (default: 'Result') -db <string> Name of the database for output (default: 'ChessBase') -mf Fixed draw margin (default) -mf2 Fixed draw margin with two factors for draw -maf Fixed draw margin with ADF (iterate per year) -maf2 Fixed draw margin with pure ADF -mv Variable draw margin -as Single run (default) -am Model selection
So, a good first test is analysis.exe -no-safe SmallChessBase.csv.
We are very interested to hear your feedback - both on the model, our paper and the F# code.
Update: Following the release of the F# September 2008 CTP we have updated the source code to work with F# 1.9.6.2. Also, we added one of the new features of F#, namely units-of-measure. Note that one can no longer accidentally pass the variance instead of the standard deviation beceause the former being of type float<ELOPoints^2>. We have also added full debug support so simply press F5 to experiment with the -no-safe SmallChessBase.csv option mentioned above.
Update: We removed a reduant schedule creation in the function FixedDrawMarginADFAnalyse. Thanks to Henry (Xinhua) Zhang for pointing out this mistake!
Ralf Herbrich & Thore Graepel