Inspiration

Digit recognition is an active topic in Optical Character Recognition (OCR) applications and pattern recognition research. It is dealt in many fields such as postal mailing sorting, bank check processing, etc.

What it does

In this project, PCA is used to reduce image dimensions and extract features. K-Means clustering is applied on testing images to further explore data. KNN and SVM with different kernel methods are evaluated on their performance of accuracy prediction. The effects of training image number, top eigenvector number on prediction accuracy are also evaluated.

How I built it

Principal Component Analysis (PCA) was used to extract digit information and project digits to low dimension spaces.

For K Nearest Neighbour classification, a certain number of training images were randomly selected from the total training set, and the prediction accuracy were tested with a combination of Ks. Besides, a combination of different top eigenvectors were selected at the fixed training image number 4000, and calculated the corresponding accuracy.

Support Vector Machine (SVM) classifier with three different kernel functions were tested to classify handwritten digits.

Challenges I ran into

SVM requires large amount of time to learn the classifier.

Accomplishments that I'm proud of

The highest prediction accuracy 98.13% was achieved using SVM with Gaussian kernel, outperforms the result of KNN of 96.89% accuracy.

What I learned

The results show that prediction accuracy increases as the number of training images increases, however, at the tradeoff of computation time. The increasing number of top eigenvectors increases the prediction accuracy, however, as the eigenvector number goes above 80, it adds more noise instead of signal.

What's next for MachineLearning

Other classifier like neural network can be tested for higher performance.

Built With

Share this project:

Updates