A small project comparing various machine learning techniques for recognizing handwritten digits, using the MNIST dataset.
Install this project using poetry
petry install
This project is based on this exercise from Kaggle.com
To run this project, you need to download the data (train.csv
) from this exercise and put it under ./data
directory
This package offers several executable scripts:
fit
- train all models and save them in the./models
directoryscore
- calculate accuracy of the modelsconfusion_matrix
- calculate confusion matrices for the modelsapp
- run the drawing app allowing to test the models
The main
script executes these steps in sequence
To run the script using poetry run:
poetry run [script]
The drawing app allows the user to select a model, draw a digit and make a prediction with selected model.
Run the app with poetry run app
After running the app, select a model with the Model
dropdown, draw a digit and hit Predict
button to use the model
to predict the digit. You can update the drawing after the prediction or select a different model to make another
prediction.
Use the Clear
button to clear the canvas and the prediction
Currently supported models are:
- Naive Bayes (from sklearn)
- Decision Tree (from sklearn)
- Random Forest (from sklearn)
- K Nearest Neighbours (k=5, from sklearn)
- Support Vector (from sklearn)