Skip to content

siddh30/Digit_Recognizer-Kaggle-Top_15

Repository files navigation

Digit Recognizer

Hit top 15% in an unranked Kaggle competition with a score of 0.9946

submission

Objective

To classify handwritten digits from 0-9 as labels (classes) - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Data

submission

- Train: A CSV of 784 features - Each feature being a pixel value for a 28*28 image. A target feature containing labels - Test: A CSV of 784 features - Each feature being a pixel value for a 28*28 image - Sample Submission CSV - A sample submission file telling us what the submission file should look like

Approach

Built a custom CNN model that had the following architecture

submission

Tips that helped:

  • Adding More Layers (Making the Network deeper to decrease training loss)
  • Including Batch Norm, Max Pooling, Padding Layers
  • Experimenting with different values of Dropout Regularization (to decrease Validation Loss and hence reduce overfitting)
  • Experimenting with different batch sizes (64 works best)
  • Setting up Callbacks: -
    1. Learning Rate Scheduler to slow down learning as the model reached convergence
    2. Saving and Loading from the best model with focus on the least validation loss
  • Finally, Ensembling results from various model runs to give the best aggregate results (Mode of prediction labels)

Link to my Kaggle notebook

https://www.kaggle.com/code/siddharthmandgi/digit-recognizer-above-0-99-score

About

Hit top 15% in an unranked Kaggle competition with a score of 0.9946

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published