Neural Network

This system uses a simple back propagating neural network. Because there cannot be a tie in a League game, we only need binary output for win/loss of the team. Although we know there probably is not a directly linear relationship for us to rely upon, we are going to test the nueral net on a range of different activation functions, number of hidden layers, and size of the hidden layers.

Neural Net

Data

Riot has an API for League of Legends data and I have used that API to gather ~1000 games worth of data. Each game has the following input data:
  1. Individual player statistics with the champion they played with
    • This is 10 input pieces (one for each player in the game)
  2. Win rate of the champions being played from all games played
    • This is another 10 input pieces (one for each champion)
  3. Sum of each of the above items
    • This is 4 input pieces (the above stats are split by team)
Therefore, in total we have 24 input items for a single output.

Changes in Data Collection

As the project went on, I changed the method of collecting data to try to get better predictions. At mentioned above, the first five inputs were a players statistics with the champion that they played. When I first started, I didn't dinstinguish this champion from the other champions; the champions were not in a particular order within this set of five inputs.

I changed this method because I figured I could get more information from these statistics. I changed it so that the champion input values were ordered based on their expected lane position in the game. For the first 20 input points, the ordering now went:
  1. Top Laner
  2. Jungler
  3. Middle Laner
  4. ADC
  5. Support
By setting all the data points in this order, I hoped to get better prediction. Granted, not every game will have five champions that fit within these bonds (people may play champs in positions that are not characteristic of that champion) and in these cases I just put them in whatever input slot is still open.