Rock Paper Scissors Predictive Algorithm

Aug 7, 2024

Rock Paper Scissors Engine and Predicting Human Randomness

Introduction

  • Developed a Rock Paper Scissors engine to analyze and predict player behavior.
  • The engine builds a psychological profile based on player moves to enhance prediction over time.

Initial Concept

  • Starts with no knowledge of the player's preferences.
  • Uses statistical advantage by starting with 'paper' as the first move (most common first choice).

Psychological Profiling

  • Records player moves to identify unconscious patterns after about 100 games.
  • Rates trends with confidence values to improve prediction accuracy as more games are played.

Number Prediction Experiment

  • Inspired by a study on human randomness; humans are often predictable when trying to be random.
  • Aims to extend the Rock Paper Scissors algorithm to predict arbitrary numbers between 0 and 100.

Key Ideas

  • When asked to think of a number, human predictability can be modeled.
  • Initial thoughts suggest low odds for accurate guessing, yet patterns can emerge with enough data.

Rock Paper Scissors Algorithm Breakdown

Basic Mechanics

  1. Game Start: Player presented with Rock, Paper, Scissors options.
  2. First Move: Engine plays 'paper' by default to leverage common human choice.
  3. Move Recording: Each player move is recorded in a list.
  4. Pattern Identification: Compares current moves with past moves to identify trends.
  5. Focus on Recent Data: More recent moves are weighted more heavily than older ones.

Retroactive Interference

  • Humans face challenges with retroactive interference, which influences their pattern replication.
  • Recent thoughts and actions are more easily recalled than those from the distant past.

Transition to Number Prediction

  • Created a simple interface for entering numbers (0-100).
  • Initially, the bot had no brain and returned nonsensical predictions.
  • Updated the code to compare earlier inputs with recent numbers to predict future inputs.

Advanced Features

  • Expanded the depth of analysis to 1 million past inputs.
  • Bot learns from a wide range of user inputs, improving prediction accuracy.
  • Added sound effects for correct and incorrect guesses to enhance user experience.

Testing and Results

  • Implemented metrics to measure performance: total win rate, confidence table, and rounds played.
  • Input a diverse set of random numbers to evaluate prediction accuracy.
  • Achieved a win rate of 6.6% during early testing, improved to 11.24% after refinements.
  • Even with low accuracy, the model demonstrated notable predictability compared to pure randomness.

Data Collection

  • Launched a Discord bot to collect user-generated data, reaching over 21,000 entries.
  • Analyzed patterns in the data to improve prediction models based on preceding numbers.
  • Applied random forest regression models for predicting sequences effectively.

New Algorithm Insights

  • Introduced concepts of normal distribution to reward confidence in predicting numbers.
  • Explored how time pressure influences human randomness during input.

Final Comparison

  • Conducted a test where two friends attempted to predict numbers against the bot.
  • The bot achieved a win rate of 5.2% while the humans struggled with a win rate of 1.8% on average.

Conclusion

  • The bot can predict human input more accurately than humans can predict themselves.
  • Insights gained from the exploration of human unpredictability and algorithmic prediction.
  • The creator reflects on shifting content focus from Minecraft to more diverse and engaging topics.