###Overview This project is a hand-rolled Python classifier for learning poker hands for the Poker Rule Induction Kaggle competition.
At the height of its glory, our classifier peaked at 99.8% accuracy, and debuted on the Kaggle leaderboard at #37 out of 117 entries. Unfortunately, that remaining 0.2% is forever beyond our reach; without heavy feature engineering, the "sometimes wrap, sometimes not" characteristic of Aces in straights make it impossible to push our algorithm to 100%. You can read more about that in the Challenges section of our report.
###Our approach
- Generate a set of observations about card rank and suits for each hand in the training set.
- Example: In a training hand, we can observe cards 1 and 2 have a consecutive rank; cards 4 and 5 have the same suit; cards 2, 3, and 4 have the same rank... etc
- Use these observations to generalize a set of rules that are true for all hands of each class in the training set.
- Example: The only rule for the pair class is that two cards in the hand must have the same rank.
- Evaluate the training set against these rules.
- Example: Which is the most specific rule set that applies to each hand (4 of a kind being more specific than a pair)?
For technical details and process, check out the report.
For a concise summary, check out the slide-deck.
Or of course, jump straight to the code.