Skip to content

a-huk/lol_esports-predictions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this?
This is a side-project of mine to attempt to predict professional League of Legends games. Here are the predictions.

What is the accuracy?
Current accuracy: -tflearn: 69.26% (392/566) -akkio: 64.54% (304/471) -player: 70.02% (348/497)
As an ensemble: Ensemble: 71.21% (381/535)

Thanks
I could not do this project on my own. So here are people/organisations that I would like to thank and suggest that you check out their work. First, thanks to Oracle's Elixir for the up-to-date and free data available on their website, nobody else has such data available like they do. Second, thanks to MRittinghouse for his oracles_elixir.py script and advice on OE's discord. Third, thanks to zlypher for his LoL schedules Lastly, to anyone else that I have forgotten.

How is it done?
Without going into too much detail, I use two models to predict game results. The first is built using tflearn which is based on TensorFlow 1. It is a classification deep-neural-network. The second model is based on Akkio, which I would describe as a all-in-one black-box AI (using their free tier), apparently it is using a Sparse Neural Network. There is sadly no official, free and reliable API available for LoLEsports. Luckily, Oracle's Elixir makes much of this data available in a very organised form. Thanks for that.

Why these leagues?
I am mainly a fan of the LCS and decided to predict results on the four major regions: LEC, LPL, LCK and LEC. Sadly, there is missing data for the LPL on OE, thus LPL predictions have been left out.

How to get it running
This only works on Linux, there is no plan to port it to another OS. There are many different components involved, so most is managed by conda. First, clone the repository and install conda, then import my environment. You also need to install Firefox. Then run the predict.sh file (change it to match you username). Add you pandascore and akkio token. Then voila you should be predict.

NOTES

  • These are only predictions, therefore they might not come true.
  • The project assumes that past performance can predict future performance, thus "upsets" will most likely never be predicted.
  • We are determining the "stronger" team and saying that it will win.
  • I will try to run the script automatically once a day, thus all predictions should be updated daily.
  • This mainly serves as a repository for me to evaluate the long-term correctness of this approach.
  • Akkio seems to make much balder/cut&dry predictions.
  • In the result's file, sometimes a > 0.5 probability is listed and the team still wins. Indeed, there was an error in the code, but the prediction output teams were always correct. The bug in the code has been resolved since.
  • Feel free to contact me at [email protected]



Your code is awful!
As said above, this is not serious, just some hacked together code.

How have you come to this DNN structure?
There is no easy way to find the best parameters for tflearn, I have done some limited testing trying different activation fucntions, epochs and layers. To be fair, most did not make much of a difference, take a look at the tuning folder for some non-scientific measurements.

Any improvements to make?
I could cache much more. Also I could save the model once it is trained and not retrain it. The training is relatively fast even on a CPU and this way it incorporates the latest data.

Any plans for the future?
Like MRittinghouse, I would like to create a few more models, especially based on players and combine them into an ensemble, as they are proven to give better accuracy with competent models.



This is an updated version, for older ones please look at ther other branches

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published