Coder Social home page Coder Social logo

moserware / skills Goto Github PK

View Code? Open in Web Editor NEW
401.0 401.0 138.0 1.97 MB

A detailed implementation of the TrueSkill algorithm to go along with my "Computing Your Skill" blog post

Home Page: http://www.moserware.com/2010/03/computing-your-skill.html

Puppet 4.79% C# 95.19% Shell 0.02%

skills's People

Contributors

moserware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

skills's Issues

license

What license is this released under the read me does not say. If you are not, sure what license to use the MIT license is a simple license often used by open source software libraries especially game related ones.

How would I "merge" two ratings?

In Heroes of the Storm on March 2019 "Storm League" mode was created, prior to that it had 2 ranked modes called "Hero League" and "Team League". How should I average together the two ratings of HL and TL into one SL rating?

Thanks!

Matrix.GetHashCode

Matrix.GetHashCode() function does not return the same value for all Matrices that are equal. For example, the following fails on the last line (one more 0 and it passes). Consider somehow rounding each double before putting it in the hash.

var a = new SquareMatrix(1, 2.00000000000001,
                                 3, 4);

var b = new SquareMatrix(1, 2,
                                 3, 4);

Assert.IsTrue(a == b);
Assert.AreEqual(a, b);
Assert.AreEqual(a.GetHashCode(), b.GetHashCode());

FactorGraphLayer doesn't implements BuildLayer

I'm trying to build a version of your code in Java and actually I've never worked with C#. So, when I implement the class FactorGraphLayer which extends the abstract class FactorGraphLayerBase it marks an error because the method BuildLayer is not been implemented in FactorGraphLayer.

(JSkill) Some calculations produce NaN

Hi, I'm a Java developer so I'm using the fork/port of this project, JSkills.

Unfortunately, the project doesn't seem to be active anymore and I ran into a blocker (nsp#9) so my question is; does the same thing happen in Skills? Do you have any idea what could cause it?

I tried debugging the code but it's too complicated for my limited brain capacity. Any help is much appreciated.

Program never halts with non-zero draw probability and buggy input

Program never halts with non-zero draw probability and buggy input

I've created a small test case for this bug/issue.

In one of my projects I stumbled on some input that would cause TrueSkillCalculator.CalculateNewRatings() to never return. The input was actually the result of a bug in my code, but I expect the test case program to either return a result or throw an exception.

The issue appears related to using a DrawProbability value greater than 0.

Software versions:

$ mono --version
Mono JIT compiler version 2.10.6 (tarball Fri Sep 16 00:13:06 EDT 2011)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       normal
    Notification:  kqueue
    Architecture:  x86
    Disabled:      none
    Misc:          debugger softdebug 
    LLVM:          yes(2.9svn-mono)
    GC:            Included Boehm (with typed GC)
$ uname -a
Darwin queue.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

PartialUpdatePercentage isn't finished/functional

Performing calculations with players defined with ID, PartialPlay%, PartialUpdate% won't show any difference in ratings when using same PartialPlay values, but differing PartialUpdate values.

The Test Unit only evaluates players with PartialPlay modifications (appears to work properly), but lacks any validation checks.
There is no Test Unit that evaluates PartialUpdate functionality or results.

FromPrecisionMean(0, 0) causes a divide by 0 exception

When translating the library I noticed that line 21 of the TrueSkillFactorGraph class calls FromPrecisionMean(0, 0) which causes a divide by 0 exception when calculating the variance.

My current work around in the Python version is to set the variance to 1 if it is 0 but I don't think this is mathematically correct.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.