This project implements a machine learning system that classifies betting and raising actions in heads-up No-Limit Texas Hold’em as value bets, semi-bluffs, or bluffs based on full game context. Using manually collected and labeled hand histories, the pipeline preprocesses hole cards, board states, betting sequences, stack sizes, and engineered board-texture features to represent each decision point. A multi-class CatBoost decision tree model is then trained to infer a player’s underlying intent behind aggressive actions, leveraging both current street information and historical aggression patterns. The goal is not to recommend optimal plays, but to model and interpret opponent behavior—specifically distinguishing deceptive actions from value-driven ones—under realistic poker conditions where information is incomplete and intentions are latent.
-
Create virtual environment and install dependencies:
python -m venv venv_CS549_Final_Project
source venv_CS549_Final_Project/bin/activate
pip install -r requirements.txt
-
Preprocess dataset for input into model:
python src/read_data.py
-
Run model:
python src/multi_class_decision_tree.py
(Jupyter notebook at src/multi_class_decision_tree.ipynb used for testing)