Skip to content

Final project for DS3500 Advanced Data Science at Northeastern University

Notifications You must be signed in to change notification settings

Ryanjso/DS3500-Final-NEU-FALL-2021

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to run

Install

This project uses treys to evaluate hand ranks

$ pip install treys

 

navigate to dstruct and run:

$ python3 main.py

Project Proposal

Motivation

Poker is an extremely complicated game, and it is often described as one of the only games at a casino that is a game of skill. In poker there is never a right move to be made. You can have the worst cards and still win, or even lose while holding the best cards. This complexity makes the task of creating a poker AI very challenging, and worthy of a semester long project. If done properly this project will demonstrate advanced knowledge and experience in multiple fields of computer science. These fields include machine learning, advanced usage of algorithms, object oriented programming, and web development.

Goals and Objectives 

We hope to create an AI powerful enough to beat a professional poker player. Our code will be able to create and manage a game of No Limit Texas Hold ‘em. We will utilize a concept known as counterfactual regret minimization (CRF) to train our AI. The idea behind CRF is that each time our AI completes a game of poker, it revisits all of its decisions and calculates a level of regret for making, or not making each choice. Our AI will then use these calculated regret scores to make more informed decisions in the future. Our AI will play against itself several thousand times an hour to improve its poker skill. One major component of poker is bluffing, which is essentially trying to make other player(s) on the table make certain decisions by betting notable amounts. We consider bluffing to be one of the most human-like parts of the game as it relies heavily on taking advantage of human psychology. We are curious to see how our AI reacts to bluffing, and if it will develop its own strategy of bluffing.

Data Sources

Our project will utilize counterfactual regret minimization to improve performance. Effectively, it will play against itself over millions of games instead of using training and test data. One possible limitation is the amount of compute-power required for the algorithm to simulate millions or even billions of poker games, and calculate regret scores. Texas Hold’em Rules: https://www.pokernews.com/poker-rules/texas-holdem.htm

Platform Architecture

This project will use Object Oriented Programming in order to build out the functionality for creating users, cards, game decks, players, and poker tables, and a Poker AI. We have created a platform where a player can play 1 vs 1 Texas Hold Em Poker with the AI that we develop in the Python console.

About

Final project for DS3500 Advanced Data Science at Northeastern University

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages