We wanted to create an analytics tool that gamers could interact with directly to have their individual performance analyzed. Also, we thought that it would be ideal if users could reflect on their own gameplay and have hypothetical scenarios analyzed (i.e. "what if I had done that instead of this") by a machine learning algorithm, as that would allow serious gamers to get the most improvement out of their time spent playing.
What it does
Users enter a log of what happened during a game in their own words, and then they enter an action that they might have done instead. Given this information, kz.AI learns to associate certain events together, and based on that, it guesses the most likely outcome of the hypothetical action.
The app uses an unsupervised learning algorithm known as K-means clustering to accomplish this behind the scenes. In order to utilize the algorithm, first the user's log of the game is processed into individual sentences and then stripped of less significant words such as "the" and "is". It then vectorizes the words using an algorithm known as TF-IDF, and finally, K-means clustering is done on the vectors to find clusters of events that are most closely associated with each other. Finally, the hypothetical action is vectorized as well, and the algorithm predicts which cluster of events it is most likely associated with.
How we built it
For the machine learning, we used a python library known as sklean as well as nltk, a library for natural language processing. The back-end is a flask server hosted locally with ngrok, and we built the front-end app with materialize.
Unique value proposition and business model
There is currently no analytics tool that can help gamers with this degree of personalization. Not only does it give feedback based on user's individual performances, it also allows users to ask very specific questions about how things might have turned out if they had done a certain thing differently. At the same time, the entire process is automated by a machine learning algorithm, which eliminates the time and extra costs that hiring an employee would have.
From a business perspective, this project would be offered as a subscription-based service where users pay a monthly fee. Everything is automated, which reduces costs, and the algorithms that we use are not particularly intensive for servers.