Nederlandse Power Rankings 2013-2014

Het onderstaande is geschreven door mind trick. Zijn systeem en de daaruit voortkomende power rankings worden door SmashNL erkend.

Het is alweer <a href="http://www.ssbwiki.com/Dutch_Power_Rankings">een tijdje geleden</a> dat er een Nederlandse power ranking is opgesteld. Naar mijn mening bevorderen dit soort lijsten altijd de competitieve spirit en het onstaan van nieuwe rivaliteit. Tevens was ik op zoek naar een projectje om wat Python te oefenen en zo ontstond het idee om de rankings terug te brengen, maar dan puur gebaseerd op resultaten. Enter, TrueSkill.

Wat is TrueSkill?

TrueSkill is een algoritme gemaakt door Microsoft en gebruikt voor de matchmaking van Xbox Live. Het idee erachter is dat de relatieve vaardigheid van een speler wordt gerepresenteerd door een normale verdeling met een initiële mu (verwachtingswaarde) en sigma (standaarddeviatie).

<center><img src='http://i.imgur.com/Hzd0MPv.png'></center>;
Een normale verdeling geeft de kans weer van het voorkomen van een bepaalde waarde, de mu kan dus worden gezien als de precieze waarde met de grootste kans de 'echte' vaardigheid aan te geven. De sigma zegt iets over de nauwkeurigheid of de kansspreiding van de waarden, een hoge sigma betekent een brede basis van de verdeling en dus een grote mate van onzekerheid.

Spelers die winnen verhogen hun mu, spelers die verliezen krijgen een lagere mu toegewezen. De sigma wordt over het algemeen steeds kleiner (meer resultaten betekent meer zekerheid) maar kan ook verhogen bij meerdere upsets, of onverwachte resultaten. De mate waarin mu verandert is ook afhankelijk van het (volgens het systeem) niveauverschil.

De naam TrueSkill zelf representeert een conservatieve benadering van de vaardigheid van een speler, in het geval van Xbox Live is deze waarde de skill waarbij het systeem met 99% zekerheid kan zeggen dat het ten minste zo hoog is (mu – 3*sigma).

Voor nadere informatie over de wiskunde erachter bestaat <a href="http://research.microsoft.com/pubs/67956/NIPS2006_0688.pdf">deze paper (vrij complex)</a> of <a href="http://moserware.blob.core.windows.net/blog/Skill/The Math Behind TrueSkill.pdf">deze (iets beter leesbaar)</a>.

Waarom TrueSkill en niet bijvoorbeeld Elo?

Volgens sommige deskundigen is het simpelweg nauwkeuriger dan Elo, maar de grootste reden is dat TrueSkill ook toepassingen heeft voor spellen die teamgebaseerd zijn, waarmee je dus iemand zijn vaardigheid in teamverband kan berekenen. Dit zal ik misschien toevoegen in de toekomst als daar genoeg animo voor is.

Toegepast op de Nederlandse Smash Scene

Een aantal variabelen heb ik aangepast ten opzichte van het Xbox systeem om in mijn optiek de onderliggende game en de verschillen in skillniveau beter weer te geven.

Ten eerste vind ik de TrueSkill benadering te conservatief en is onze lijst gesorteerd op een TrueSkill waarde van mu-sigma, wat nog steeds een zekerheid van 84% geeft. Ook benadeelde de originele waarde de mensen te veel die minder actief waren dan anderen met meer resultaten en een bijna gelijkwaardige skill.

De initiële mu en sigma zijn zo aangepast dat er een schaal van ongeveer 0-100 ontstaat. Deze waarden zijn sowieso arbitrair, maar met het oog op bijvoorbeeld seeding die meestal met waarden van 0 tot 10 verloopt, leek dit mij handig. Ook hebben spelers waarvan 2 toernooiresultaten bekend zijn (2 losses/2 and out) een lagere initiële mu gekregen, zodat mensen niet een te grote verhoging toegewezen krijgen met wins over deze spelers. Buitenlandse spelers die 1 of 2 keer zijn overgekomen en erg goed hebben gepresteerd, hebben een hogere mu toegewezen gekregen.

De beta (geeft ongeveer aan hoe groot de skillgaps zijn in het desbetreffende spel) is lager gesteld, wat overeenkomt met een high skill game. Misschien ten overvloede, maar het systeem maakt geen verschil tussen een 2-0 of een 3-2 set overwinning, een win is een win.

Ik heb besloten om de resultaten vanaf augustus 2013 (Shots Fired!) in het systeem te verwerken, waarbij een toernooi een jaar geleden half zo zwaar telt als recente resultaten, met alle toernooien daartussen een zwaarte die lineair verloopt met de tijd. Resultaten van toernooien als Republic of Fighters 3 zijn niet meegenomen, aangezien ik dan ook eerst elke buitenlandse scene zou moeten modelleren.

Om in de lijst te verschijnen moet je minimaal ongeveer 5 resultaten hebben en aan twee toernooien hebben meegedaan. Het Python script draait nu twee lijsten uit, de power ranking met de top 20 gesorteerd op de aangepaste TrueSkill waarde en de top 50, onderverdeeld in 5 tiers met ook informatie over de mu en sigma.

Dus, zonder verder oponthoud:

<center><img src='http://i.imgur.com/fh2Rya3.jpg3'></center>;

<a href="http://pastebin.com/LZbBscz8">Top 50 NL</a>
Log In of Registreer om te reageren.