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
.jsonformat 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.pycontains functions that clean the data as well as extracting the various features discussed in the report.src/chess_utilscontains many helper functions implementing algorithms that extract information specific to chess that can be used as features.
src/testbench.pycontains 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/.