Skip to content

Delaunay/Ranked

Repository files navigation

ranked

Current PyPi Version Supported Python Versions BSD 3-clause license Documentation Status Codecov Report Github actions tests Github actions tests

Features

  • A common interface for ranking algorithms
  • Elo (Chess & Generic)
  • Glicko2
  • NoSkill (similar to Trueskill, i.e bayesian inference on a bipartite graph)
  • Synthetics benchmarks
  • Basic match maker
  • Matchup replay to calibrate and experiment on real data
  • Model calibration using black-box optimizer Orion

Note

For team based games; When benchmarking ranking algorithm against real data you have to keep in mind that the matchmaking algorithm that created the groups was based on its own external ranking system so any measure that would come out of such benchmarks would end up being biased.

Note

Similarly, matchmaking or the team building algorithm can impact the performance of the ranking algorithm. It is up to the matchmaking algorithm to make sure the teams it builds are as fair as possible.

The ranking algorithm only provide an estimate of each player'skill to help the matchmaker to make the best decision possible.

Examples

ranker = ChessElo()
p1 = ranker.new_player((1613 - sub) / div)
p2 = ranker.new_player((1609 - sub) / div)

m1 = Match((p1, 0), (p2, 1)),  # p1 lost (lower score)

win_prob = ranker.win(m)

ranker.update(m)

# P1 lost so its skill got updated down
new_skill = p1.skill()  # 1603.19

WIP

  • NoSkill2
  • Dota2 extracted matches
pip install ranked

https://github.com/Delaunay/Ranked/blob/master/docs/_static/example.png?raw=true