ARAM Team Comp Prediction

League of Legends is team-based game where players form a team of five and assume the role of a champion - characters with varying types of classes and unique abilities - and battle against another team of five players. ARAM (All Random, All Mid) is a special game mode where the game randomly assigns champions to each player instead of the player selecting his own.

As mentioned, in the game lobby, each player starts with a randomly assigned champion, but is able to re-roll in order to obtain a new champion (the previous champion can be re-selected).

Thus, the goal of this app is to predict the best combination of champions that would lead to a win. The game client attempts to make as random as possible, with each team with a probability to win of 50%. However, certain combinations of champions are likely to have synergistic effects, and others might have antagonistic effects.

Instructions

For each of the dropdown option, select the champion for each of the teammates and press submit to post the data into the backend. The data is sent into the serialized ML model, which outputs the predicted probabilities for a Victory.







Probability of Winning:

---

How it works:

Data Scraping:

  • The data used in this project were extracted from the RIOT API, which gives basic information about users and games. To scrape usable game data for the ML model, we first need to extract a list of player usernames, then extract their game history, and finally filter to data only for ARAM match mode.

  • The RIOT API allows a request rate of 100 requests per 2 mins, and in total, over 35,000 ARAM games were extracted.
  • Data Pipeline:

  • Once the list of usable game_ids have been determined, then each game information is extracted using the game_id as parameter.

  • The raw data is inserted into a postgresql database for further usage downstream.

  • Since we only want to predict the probability of winning a game based on champion selection alone, we extract only the relevant features.

  • Attached to each champion are auxiliary information that can be used for prediction, such as long-range abilities, crowd-control abilities, etc... We add these extra information into the postgresql database.

  • With the final cleaned training dataset, we train ML models to find the highest accuracy. In this case, the Random Forest was tuned and selected. The final model is serialized using Python's package pickle for usage in the frontend.

  • Descriptive Alt Text