Inspiration

Followed LOL Esports for many years and works as a data scientist. I have a lot of experience with rating models so this was an interesting challenge.

What it does

Calculates ratings using historical match-player-data and exposing them using API endpoints.

How we built it

Rating Model

  • A separate libary for optimizing player-based-rating models was created for this usecase (https://github.com/Hiderdk/player-performance-ratings)
  • Player-and-team-stats such as kills, deaths,assists, game_length, champion compositions, damage was adjusted for context and used to calculate ratings.
  • The weights were optimized for predictive accuracy (who wins next match).
  • To address regional rating bias's (weak isolated regions tend to be have inflated ratings in rating-models), a new player who enters his first match receives a different rating if he plays an LCK match compared to a new LCS Academy player.
  • If teams/players from a league outperforms in matches against teams from another league, it will slightly boost the rating of all other players within the league. This ensures that a leagues strength dynamically can change over time

Post Rating Processing

Challenges we ran into

  • Data quality was incosistent. E.g. some games not mapping to tournaments, players not mapping to their names. Incorrect playercounts per game.

  • Accurate relative strenghts between different leagues/regions. LFL/Prime definitely overrated. A lot of work has been to try to address it, and the attempts have resulted in noticeable improvements, but clearly room for more.

  • Experimentation with ingame state data (every 10 second) --> Took a lot of storage to work with this. Attempts at making win-probability-added metrics did not lead to improvement in predictive accuracy.

Accomplishments that we're proud of

  • Generic framework for optimizing any type of rating model was created to support the project.
  • Optimization for regional ratings resulted in significant accuracy gains.
  • Player performances adjusted for context (e.g. champion composition).

What we learned

  • Gained experience with AWS ecosystem.
  • Teams winning matches in short game-time is better than in drawn out.

What's next for LOL Player Ratings

  • Utilize ingame-state data better. One could imagine evaluating players to measure whether their contribution in a gank/teamfight improved win-probabilities.
  • Continue improving regional ratings (still some flaws in the rating values between teams from different leagues).

Built With

  • api
  • gateway
  • lambda
  • s3
Share this project:

Updates