TrueSkill Through Time

Pertanyaan TrueSkill Through Time

  • 2012년 4월 18일 수요일 오후 2:25
     
     

    Hi!

    I found an implementation of TrueSkill using Infer.NET on this forum and it works great for me. However, I'm unable to implement TrueSkill Through Time in the same way. I know there is an implementation of TTT in F#, however, it doesn't use Infer.NET.

    I'd appreciate any help!

    Thanks!

모든 응답

  • 2012년 4월 19일 목요일 오후 12:39
     
      코드 있음

    In TrueSkill Through Time, the player skills change each year, and they are coupled between consecutive years.  So you need to have a separate PlayerSkills array for every year, and repeat the whole model (performances, etc.) for each year, then link the years.  The trickiest bit is linking the years.  Each player has a year where they first started playing.  In that year, their skill comes from the prior, otherwise their skill is drawn from a Gaussian around the previous year's skill.  Since this differs for each player, you have to use a Variable.If statement to branch on whether this is the first year for a player, and generate their skill value appropriately.  So the code becomes something like this:

    Variable<bool> isFirstYear = (firstYear[player] >= year);
    using (Variable.If(isFirstYear)) {
      skillInYear[year][player] = Variable<double>.Random(skillPrior);
    }
    using (Variable.IfNot(isFirstYear)) {
      skillInYear[year][player] = Variable.GaussianFromMeanAndPrecision(skillInYear[year-1][player], skillChangePrecision);
    }