LCS Matchup Predictions

Using the given data set, we decided it would be an interesting experiment to use machine learning to predict the outcomes of all NA LCS matches played on patches 5.11 and 5.14. During the NA LCS 2015 Summer Split, matches played on 5.11 were during weeks 4 and 5, and matches played on 5.14 were the entirety of the playoffs.

Methodology

We used a popular Python library called scikit-learn to build our experiment. Knowing that we had a data set that was labeled (by which team won the match), we knew that we wanted to use an algorithm that would be able to classify our input data into one of these categories. For this purpose, we chose to use a Support Vector Machine with a linear kernel (we also experimented with an RBF kernel but there wasn't too much difference in the outcome). While scikit-learn is not a difficult library to use, the most challenging aspect was converting the data and all its possible attributes (which champions were on which team) into a numerical format accepted by the machine, which only takes in a two-dimensional array. To achieve this in a way that represents all of the possible team comps for each team, we used a wide array with slots for all possible 126 champions on each team: 126 * 2 + 2 = 254. (Plus 2 for patch and match tier). Thus, we can stick a "1" in every slot where the team had a champion, and leave it "0" otherwise—there's quite a lot of empty slots. Thus, by giving each champion a unique index up to 126, we were able to use this wide array to represent all of the desired match conditions.

Our ApIsOp/ml directory contains all of the work for this experiment. Inside, MatchPredictor.py is our main program which utilizes DataLoader.py to read and format match data from the data set and MachineLearningModel.py to actually train and test the machine. ApIsOp/ml/lcs_match_data contains all of the data we finally fed into our machine to predict the LCS matches, with the final results viewable down below.

Upon loading our data set back into our machine to try to predict, we achieved approximately a 56% accuracy (test results here). Out of the 41 NA LCS matches, we correctly predicted 25, about 61%. All of these matches were marked in the machine as the highest tier possible (Diamond+). Considering on how many differing factors can go into a single match other than simply champions chosen, these results surpassed our expectations.

Matchups and Results

In terms of the machine, if it predicts a team will win, it believes that this team has the superior team comp with the relevant patch data.

Many times our match predictor correctly predicted 3-0 stomps in finals (CLG vs TSM, TIP vs DIG). However, it incorrectly predicted on a few matches that became turning points in series, showing that a team's ability to focus and play from behind is a huge factor in which team will win the game. This data purely represents the value of particular team comp matches within 5.11 and 5.14 data and doesn't regard ANY external factors, such as the individual abilities of players to overcome their mistakes or disadvantages and win.

Overall prediction rate was 61%. We had a very high correct prediction rate for 5.14 (playoff matches) at 75%, but only about 45% for 5.11. However our sample size is not that great.

Our full results (in a text file format) for all LCS matches that used patches 5.11 and 5.14 can be seen here.

Selections from 5.11

Week 4, Day 1, Match 3: TL vs TSM
(TL Win Wrongly Predicted)

Team Liquid
Quas · IWDominate · FeniX · Piglet · Xpecial

vs

Team SoloMid
Dyrus · Santorin · Bjergsen · WildTurtle · Lustboy

Week 4, Day 2, Match 3: CLG vs C9
(C9 Win Wrongly Predicted)

Counter Logic Gaming
ZionSpartan · Xmithie · Pobelter · Doublelift · Aphromoo

vs

Cloud9
Balls · Meteos · Incarnati0n · Sneaky · LemonNation

Week 5, Day 1, Match 2: TL vs CLG
(TL Win Correctly Predicted)

Team Liquid
Quas · IWDominate · FeniX · Piglet · Xpecial

vs

Counter Logic Gaming
ZionSpartan · Xmithie · Pobelter · Doublelift · Aphromoo

Week 5, Day 2, Match 2: TIP vs C9
(C9 Win Wrongly Predicted)

Team Impulse
Impact · Rush · Gate · Apollo · Adrian

vs

Cloud9
Balls · Meteos · Incarnati0n · Sneaky · LemonNation

Selections from 5.14

Third Place Match 4: TIP vs TL
(TIP Win Wrongly Predicted)

Team Impulse
Impact · Rush · Gate · Apollo · Adrian

vs

Team Liquid
Quas · IWDominate · FeniX · Piglet · Xpecial

Quarterfinals Match 3: TIP vs DIG
(TIP Win Correctly Predicted)

Team Impulse
Impact · Rush · Gate · Apollo · Adrian

vs

Team Dignitas
Gamsu · Helios · Shiphtur · CoreJJ · KiWiKiD

Semifinal Match 4: TSM vs TL
(TSM Win Correctly Predicted)

Team SoloMid
Dyrus · Santorin · Bjergsen · WildTurtle · Lustboy

vs

Team Liquid
Quas · IWDominate · FeniX · Piglet · Xpecial

Final Match 3: CLG vs TSM
(CLG Win Correctly Predicted)

Counter Logic Gaming
ZionSpartan · Xmithie · Pobelter · Doublelift · Aphromoo

vs

Team SoloMid
Dyrus · Santorin · Bjergsen · WildTurtle · Lustboy