/Elo_Predictor

Machine learning project aiming to predict player Elo ratings from a given chess game. Group project for a module on Machine Learning @ TCD.

Primary LanguageJupyter Notebook

Elo Predictor

Machine learning project aiming to predict player Elo ratings given a chess game. Group project with yungene and yamkovoa for a module on Machine Learning @ TCD.

Project Structure

A description of the contents of each folder in this project.

Data

  • Data available in data/ downloaded from the FICS chess database.
  • Cleaned data stored as .clean.pgn contains only standard chess games with at least 4 moves.
  • Some stored extracted features present in data/x/ and data/y/.

Images

  • Some plots describing the data and model performance.

Notebooks

  • Jupyter notebooks used to experiment on data / with various models and feature extraction techniques.

Reports

  • A collection of reports on model performance as generated by src/testbench.py.
  • Each report is in .json format and contains MSE and R2 scores for both training dataset and test dataset for each model.

Models

  • The models used are available in src/ in their own files.
  • Each model is part of a pipeline containing feature extraction and scaling if necessary, forming an end-to-end function that can be tested in a standardised way.

Feature Extraction

  • src/features.py contains functions that clean the data as well as extracting the various features discussed in the report.
  • src/chess_utils contains many helper functions implementing algorithms that extract information specific to chess that can be used as features.

Testing

  • src/testbench.py contains a function that evaluates the performance of a given pipeline on a given amount of train and test data.
  • It then generates a report which is stored in reports/.