<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Applied Games Group Blog : TrueSkill</title><link>http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx</link><description>Tags: TrueSkill</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TrueSkill in F#</title><link>http://blogs.technet.com/apg/archive/2008/06/16/trueskill-in-f.aspx</link><pubDate>Mon, 16 Jun 2008 07:25:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3071681</guid><dc:creator>apg</dc:creator><slash:comments>37</slash:comments><comments>http://blogs.technet.com/apg/comments/3071681.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=3071681</wfw:commentRss><description>&lt;P&gt;Following the &lt;A href="http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx" mce_href="http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx"&gt;publication&lt;/A&gt; of the &lt;A href="http://research.microsoft.com/fsharp/fsharp.aspx" mce_href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/A&gt; source code for the &lt;A href="http://research.microsoft.com/osa/apg/trueskill.aspx" mce_href="http://research.microsoft.com/osa/apg/trueskill.aspx"&gt;TrueSkill&lt;/A&gt; Through Time paper, we have used the same inference library code to demonstrate how the original TrueSkill algorithm can be coded. In the attached source code, only the &lt;U&gt;program.fs&lt;/U&gt; file is different to the TrueSkill through Time blog post and it builds up the factor graph for an arbitrary N-player game with an arbitrary draw probability. Both these numbers can be entered on the command line when running the resulting sample. We tried to make sure to stay as close as possible to the description on page 3 of the &lt;A href="ftp://ftp.research.microsoft.com/pub/tr/TR-2006-80.pdf" mce_href="ftp://ftp.research.microsoft.com/pub/tr/TR-2006-80.pdf"&gt;TrueSkill technical report&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The attached ZIP file contains the entire source code which should compile without problems with &lt;A href="http://research.microsoft.com/research/downloads/Details/7ac148a7-149b-4056-aa06-1e6754efd36f/Details.aspx"&gt;F# 1.9.3.14&lt;/A&gt;. 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 &lt;U&gt;trueskill.exe&lt;/U&gt; program. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Following the release of the &lt;A href="http://msdn.microsoft.com/en-us/fsharp/default.aspx" mce_href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;F# September 2008 CTP&lt;/A&gt; we have updated the source code to work with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en"&gt;F# 1.9.6.2&lt;/A&gt;. Also, we added one of the new features of F#, namely units-of-measure, which makes the TrueSkill update invocation calls now read as follows:&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorMu = 25.0&amp;lt;SkillPoints&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorSigma = priorMu / 3.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorSkills = Array.init noPlayers (&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;fun&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; i &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; Gaussian.Create (priorMu, priorSigma))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; (posteriorSkills, logZ) = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NPlayerTrueSkillUpdate (0.5*priorSigma, 0.01*priorSigma, drawProb / 100.0) priorSkills&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Note that one can no longer accidentally pass the variance instead of the standard deviation because the former being of type &lt;FONT face="Courier New"&gt;float&amp;lt;SkillPoints^2&amp;gt;&lt;FONT face=Arial&gt;. Try yourself!&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 2&lt;/STRONG&gt;: We had some feedback from Andrew Kennedy that we exploited a current "bug" in the units-of-measure code where literals (such as 1.0) can have generic units. We removed the incorrect usages and re-posted the ZIP file.&amp;nbsp;&lt;/P&gt;&lt;STRONG&gt;Update 3&lt;/STRONG&gt;: We extended the example to work with draws. Thanks to Chih-Jen Lin for the suggestion!&amp;nbsp; 
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;P mce_keep="true"&gt;&lt;SMALL&gt;Ralf Herbrich &amp;amp; Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3071681" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/3071681.ashx" length="9696" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Bayesian/default.aspx">Bayesian</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>TrueSkill Through Time</title><link>http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx</link><pubDate>Sat, 05 Apr 2008 15:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3029664</guid><dc:creator>apg</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/apg/comments/3029664.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=3029664</wfw:commentRss><description>&lt;P&gt;In December 2007, we published a &lt;A href="http://books.nips.cc/papers/files/nips20/NIPS2007_0931.ps.gz"&gt;paper&lt;/A&gt; about the application of &lt;A title="TrueSkill Homepage" href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx" mce_href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx"&gt;TrueSkill&lt;/A&gt; to all recorded data of professional and semi-professional Chess play from 1850 to 2006. The dataset can be obtained from &lt;A href="http://www.chessbase.com/shop/product.asp?pid=211&amp;amp;user=&amp;amp;coin="&gt;ChessBase&lt;/A&gt;. We are very happy to be able to release the &lt;A href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/A&gt; source code that performed all these massive computations. A few things to bear in mind when running this code:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The full factor graph has ~30,000,000 factors and ~25,000,000 variables. At this size, the analysis is among the largest applications of (approximate) Bayesian inference to date. Nevertheless, the full message passing schedule allocates no more than 11 GB of memory and is run in under 20 minutes on an Intel Pentium 4 processor. These numbers hold for the adaptive draw margin model run on 3.5 million games.&lt;/LI&gt;
&lt;LI&gt;Due to the huge amount of results (&amp;gt;1,200,000 skills of all players in all their active years) we use SQL server to store the result set. Please let us know if you think a purely text based result output is needed and we will add it.&lt;/LI&gt;
&lt;LI&gt;There is a very interesting, related &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;paper&lt;/A&gt; by Prof. &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;Mark Glickman&lt;/A&gt; which analyses subset of this data (88 top players of all time).&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;The attached ZIP file contains the entire source code which should compile without problems with &lt;A href="http://research.microsoft.com/research/downloads/Details/7ac148a7-149b-4056-aa06-1e6754efd36f/Details.aspx"&gt;F# 1.9.3.14&lt;/A&gt;. 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 &lt;U&gt;chessanalysis.exe&lt;/U&gt; program or an &lt;U&gt;analysis.exe&lt;/U&gt; 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).&lt;/P&gt;
&lt;P mce_keep="true"&gt;As for running the code, here are the parameter switches of the command line application:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-no-safe&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Does not save results predictions (default: off)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-q&amp;nbsp;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Verbosity level off; only works on single runs (default: on)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-N &amp;lt;int&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First N games only (default: ALL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-delta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maximum deviation in any marginal for convergence (default: 0.01)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mean of prior skill belief (default: 1200)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Standard deviation of prior skill belief (default: 400)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Mean of prior draw margin belief (default: 300)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaD &amp;lt;float&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;Standard deviation of prior draw margin belief (default: 100)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-beta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Standard deviation of performance distr. (default: 600)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of skill dynamics distr. (default: 40)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of draw margin dynamics distr. (default: 10)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;B&gt;-server &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL server name for output (default: 'camresapga01')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-prefix &amp;lt;string&amp;gt;&lt;/B&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table name prefix for output (default: 'Result')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-db &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name of the database for output (default: 'ChessBase')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with two factors for draw&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with ADF (iterate per year)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin with pure ADF&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mv&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable draw margin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-as&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Single run (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-am&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model selection&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, a good first test is analysis.exe -no-safe SmallChessBase.csv.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We are very interested to hear your feedback - both on the model, our paper and the F# code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Following the release of the &lt;A href="http://msdn.microsoft.com/en-us/fsharp/default.aspx" mce_href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;F# September 2008 CTP&lt;/A&gt; we have updated the source code to work with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en"&gt;F# 1.9.6.2&lt;/A&gt;. 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 &lt;FONT face="Courier New"&gt;float&amp;lt;ELOPoints^2&amp;gt;&lt;FONT face=Arial&gt;. We have also added full debug support so simply press F5 to experiment with the -no-safe SmallChessBase.csv option mentioned above.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: We removed a reduant schedule creation in the function &lt;EM&gt;FixedDrawMarginADFAnalyse&lt;/EM&gt;. Thanks &lt;A class="" href="http://users.rsise.anu.edu.au/~xzhang/" mce_href="http://users.rsise.anu.edu.au/~xzhang/"&gt;to Henry (Xinhua) Zhang&lt;/A&gt;&amp;nbsp;for pointing out this mistake!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SMALL&gt;Ralf Herbrich &amp;amp; Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3029664" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/3029664.ashx" length="30784" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Bayesian/default.aspx">Bayesian</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>Commercial Users of Functional Programming (CUFP) 2007</title><link>http://blogs.technet.com/apg/archive/2007/10/25/commercial-users-of-functional-programming-cufp-2007.aspx</link><pubDate>Fri, 26 Oct 2007 00:09:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2252643</guid><dc:creator>apg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/apg/comments/2252643.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=2252643</wfw:commentRss><description>&lt;P&gt;At the beginning of this month (October) I attended and presented at the &lt;A class="" href="http://cufp.galois.com/" mce_href="http://cufp.galois.com/"&gt;CUFP&lt;/A&gt;&amp;nbsp;event in Freiburg, Germany.&amp;nbsp;The &lt;A class="" href="http://cufp.galois.com/2007Abstracts.html#PhilTrelford" mce_href="http://cufp.galois.com/2007Abstracts.html#PhilTrelford"&gt;talk&lt;/A&gt; was on some of the work our group has been doing&amp;nbsp;over the last year&amp;nbsp;using &lt;A class="" href="http://research.microsoft.com/fsharp/" mce_href="http://research.microsoft.com/fsharp/"&gt;F#&lt;/A&gt;&amp;nbsp;including the XBox 360 title &lt;A class="" href="http://www.halo3.com/" mce_href="http://www.halo3.com/"&gt;Halo 3&lt;/A&gt;&amp;nbsp;and on predicting ad clicks for&amp;nbsp;&lt;A class="" href="http://www.live.com/" mce_href="http://www.live.com/"&gt;Windows Live&lt;/A&gt;. The &lt;A class="" href="http://cufp.galois.com/slides/2007/PhilTrelford.ppt" mce_href="http://cufp.galois.com/slides/2007/PhilTrelford.ppt"&gt;slides&lt;/A&gt; (thanks Ralf) are now available online and for those who couldn't make&amp;nbsp;it videos&amp;nbsp;of all the talks&amp;nbsp;are expected soon. There were plenty of interesting talks throughout the day, including Chris Waterson of Liveops "... using continuation passing monads to encapsulate computation state and hide the complexity of the non-blocking I/O layer"&amp;nbsp;with OCaml, which&amp;nbsp;seemed to be in&amp;nbsp;a&amp;nbsp;similar direction&amp;nbsp;to&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx"&gt;F# asynchronous workflows&lt;/A&gt;. The day ended with a discussion led by Don Syme on the subject of hiring functional programmers; where it emerged that the&amp;nbsp;remaining attendees were actively seeking over 40 new hires. Finally it was time to enjoy the remainder of a hot sunny day and&amp;nbsp;some quality German beer.&lt;/P&gt;
&lt;P&gt;Phil&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2252643" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+360/default.aspx">Xbox 360</category><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+Live/default.aspx">Xbox Live</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>3 Days in Vancouver</title><link>http://blogs.technet.com/apg/archive/2006/12/08/3-days-in-vancouver.aspx</link><pubDate>Sat, 09 Dec 2006 01:49:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:548900</guid><dc:creator>apg</dc:creator><slash:comments>27</slash:comments><comments>http://blogs.technet.com/apg/comments/548900.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=548900</wfw:commentRss><description>&lt;P&gt;The &lt;A class="" href="http://www.nips.cc/" target=_blank mce_href="http://www.nips.cc/"&gt;Neural Information Processing Systems&lt;/A&gt; conference has just finished. There were a lot of interesting talks and posters (we spare you the entire list of talks and posters, they can be found &lt;A class="" href="http://nips.cc/Conferences/2006/Program/schedule.php?Session=42" target=_blank mce_href="http://nips.cc/Conferences/2006/Program/schedule.php?Session=42"&gt;here&lt;/A&gt;). The most hands-on research could be seen in the demonstration track; a number of interesting demos included:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The&amp;nbsp;&lt;A class="" href="http://ssli.ee.washington.edu/vj/" target=_blank mce_href="http://ssli.ee.washington.edu/vj/"&gt;Vocal Joystick&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.lri.fr/~gelly/MoGo.htm" target=_blank mce_href="http://www.lri.fr/~gelly/MoGo.htm"&gt;MoGo&lt;/A&gt;, one of the strongest 9x9 Go programs as of today&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Also, there was a short presentation on the &lt;A class="" href="http://www.netflixprize.com/" target=_blank mce_href="http://www.netflixprize.com/"&gt;NetFlix prize&lt;/A&gt;.&amp;nbsp;This is a prize sponsored by NetFlix Inc. given to the team that develops the strongest movie recommendation system. A very interesting contest!&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Ralf shortly before the TrueSkill talk at NIPS" alt="Ralf shortly before the TrueSkill talk at NIPS" src="http://blogs.technet.com/photos/apg/images/548893/secondarythumb.aspx" align=left vspace=5 border=5 mce_src="http://blogs.technet.com/photos/apg/images/548893/secondarythumb.aspx"&gt;We were very happy to have an opportunity to talk about TrueSkill during a 20 minute presentation on Tuesday. The talk went well and there were a number of questions (a lot of questions were actually ask about our current work of applying TrueSkill to 200 years of professional Chess outcome data). However, talking at such a big venue is quite a nerve wrecking experience (there are about 700 of the best researchers in AI and machine learning in the audience) and you can see a very tense Ralf right before the talk.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;Ralf Herbrich and Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=548900" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/General/default.aspx">General</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category></item></channel></rss>