Inspiration: I find the realm of machine learning to be incredibly interesting, and while my computer science knowledge is still extremely limited, I wanted to create something that dealt with, even in the slightest regard, machine learning. This Java program accomplishes just that in its capacity to "learn" the user's patterns of behavior.
What it does: Guess Bot takes a sample of entries from the user, each of which can be a 1 or a 2, and after a designated amount of samples, takes a guess as to what the next user-input number would be. If Guess Bot can predict the user's behavior with more than 50% accuracy, then it is essentially "learning" and not guessing at all, in the sense that we normally use the word. Also, this would show that humans are not actually behaving randomly, even when prompted to enter a random sequence.
How we built it: When it predicts a user's next entry, Guess Bot draws from the "opinion" of several "brains". Each "brain" is a different snippet of Artificial Intelligence that predicts the sequence according to a different formula. For example, one "brain" looks at only the previous entry and compares it to what values usually follow that entry, whereas another "brain" looks at the past 4 entries and compares it to what values usually follow those 4 entries. Another object, called the "collective" acts to gather the "opinion" of all "brains" and create a final "prediction"; the "collective" can be thought of as a president or leader, since it gives the final answer. An important aspect of the program is that it first shows a 3rd party the computer's prediction so that when the user inputs the next entry the 3rd party can indeed verify whether the computer predicted correctly or not.
Challenges we ran into: We initially wanted the "brains" to constantly update as the user input more entries, but unfortunately we were not able to implement this. Instead, we were able to achieve similar results by having a larger sample size preceding each guess. The downside of this is that a new sample must be input to provoke a prediction each time.
Accomplishments that we're proud of: After running several tests, we found that our Guess Bot can predict user-input with an accuracy of ~ 60%, which is larger than 50% and presents good evidence to believe Guess Bot is indeed learning human behavior.
What we learned: We learned that human behavior can be modeled by empirical analysis and statistics and that it is not as random as it sometime appears to be.
What's next for Guess Bot: We would like to implement formula to throw out the "brains" that are not predicting correctly or at the very least give them less of a say with the collective. This would be the equivalent of giving each "brain" a relevant weight based on how fit it is in predicting.
Log in or sign up for Devpost to join the conversation.