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.
A description of the contents of each folder in this project.
- 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/
anddata/y/
.
- Some plots describing the data and model performance.
- Jupyter notebooks used to experiment on data / with various models and feature extraction techniques.
- 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.
- 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.
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.
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/
.