Inspiration
-As Deep Neural Networks (DNN) become increasingly advanced, we have elected to harness this technology for our primary analytical tool. The DNN model functions as a victory predictor, with rankings being forcefully generated through simulating confrontations among all teams.
- As addicted League players, we understand that many factors contribute to determining the strength of a team. But fundamental to the core is the individual players that make up the team, as well as how each player is able to synergize with one another and perform truly like a team.
- Trends matter. A team's recent performance is significantly more important than its historical record.
- Win/Loss itself aren't great indicators. Although controversial, we strongly believe that simply winning another team is not the best indicator to determine rank. As best demonstrated by WBG's performance in Worlds 2023, although winning NRG first round, their positions have seemingly reversed. In many ways league of legends, with all the nuances and match-ups, may function similar to rock paper scissors, where A > B > C > A. Thus, it is important that our ranking considers and in some cases ignores certain seemingly "direct" information, and really dive to the core of the evaluation of strength.
What it does
We have built extensive databases of players and teams using all the possible information that was provided, and then some. As DNN rely heavily upon the data that is fed into it, we were extremely careful to pick and choose information that we believe is critical to the predications of performance. We built a pipeline that, given any two teams and their players, is able to search for recent and distant games and evaluate performance, generating a win probability for each team. Through this predictor and a comprehensive limit test across all teams in pool, we are able to determine the relative strengths of each team.
How we built it
We took advantage of the immense dataset provided by Data Dragon, with nearly 2 TB of total data from the past three years. A plethora of information on gold earned, gold difference, champion pool, itemization, vision score, crowd-control, etc. for each player, average gold difference, objective control such as dragons, barons, heralds, timing, and its relation to the player's champion and playstyle as information for the team. We used a custom residual architecture for the DNN, with each role as its own initial neural network, creating an embedded vector, concatenated with all five players and additional team information, fed into a Deep Residual Network to come out with a softmax predictor of winning probabilities, trained with cross-entropy with real results.
Challenges we ran into
There were many challenges, the biggest of all was probably time. As of the writing of this line, I have less than 2 hours till submission. Unfortunately, I found this hackathon with 4 days till the deadline, scrambling to assemble a team and devise a strategy, time was the biggest enemy. (so proud of my team) That is not to say there weren't substantial challenges on the technical side. The data provided did not have very clear cut instructions or documentation attached to it, causing a lot of frustration and confusion among the team members when trying to extract the needed information for the machine learning models. Edge cases, incorrectly labelled data, misplaced data, etc. all chipped away at the precious time that we had. But the worst of all was probably the lack of data. Even with nearly 2 TB of information at our hands, we were still unsure if this would lead to a strong enough model that would be able to account for the nuances of the game that is League of Legends. The is probably best exemplified by the lack of data in LPL, although we have the unfiltered tournaments and mappings, in game data is nowhere to be found and is critical for the predictor. Unfortunately this just leaves holes in our model as a predictor and we have to find workarounds for such cases.
Accomplishments that we're proud of
Finishing with a strong product. I think given the challenges that each of the team members faced, with Yiju heading in and out of the hospital for health issues, with multiple other deadlines, with the lack of time and many other challenges. Many times we looked at each other and we could tell the question mark in our eyes: "do we really want to continue?" But just finishing was enough. We are all proud of the work that we submitted, and regardless of any results, we walk away happy, and as better engineers than we started.
What we learned
This is the first hackathon for all of us, and I can speak for the team when I say we learned so much from this experience (big thank you for all those who made it happen). First of all, starting early would be great. But moving on, as an (aspiring) Machine Learning Engineer, I've always been wanting to take advantage of the online resources for accelerating my workflow and to tackle larger models that I am unable to do on my local machine. Furthermore, communication and the even distribution of tasks is extremely important, with such a time scramble, utilizing the little resources that we have is extremely important, and that cannot be done without effective communication.
What's next for yiju-jerry-john
I guess we will be looking for more Hackathons to join and participate in, and continue to enjoy Machine Learning and building software.
Log in or sign up for Devpost to join the conversation.