Classification on MNIST Dataset, utilising only traditional Machine Learning techniques. This is a course project of the course Pattern Recognition And Machine Learning of IIT Jodhpur, taught in Semester-II of Academic Year 2023-24.
Keep pickle.dump() and plt.savefig() statements uncommented if you wish to save the trained classifiers or images.
- experiment_with_classifiers - Trains different classifiers on different variations of the MNIST dataset.
- augmentation_code - Generates variations of the training dataset to have more training examples for the best models. File creates and saves a .feather file.
- save_custom_transformed_data - Creates and saves two .feather files, which are used for training and testing the best models.
- best_models - Trains the best models on the augmented dataset, and saves the classifiers are .pkl files for later use.
- prediction_real_img - Provides prediction of two handwritten digits, 3.jpg and 7.jpg, clicked on camera. Certain preprocessing steps are involved before prediction.
The above files won't work properly if not executed in the above order.
gen_augmentation_images is used to view the different variations of a single image, after data augmentation. Can be used after execution of file 2.
failure_case_best_model is used to perform failure case analysis of the best model obtained after training. File is available for execution after executing file 4.
- Original dataset (with normalisation)
- Principal Component Analysis (dimensionality reduction)
- Linear Discriminant Analysis (dimensionality reduction)
- Edge Detector with Prewitt Kernel (feature extractor)
- Custom feature extractor
- Augmented Dataset for larger training set
- K-Nearest Neighbors
- Decision Trees
- Linear Regression
- Naive Bayes (Gaussian and Multinomial)
- Random Forest
- AdaBoost
- Histogram Gradient Boosting Classifier
- Support Vector Machines with Radial Basis Function Kernel
98.08%
View the report to get an in-depth understanding of the project.
A concise presentation about the project.
- Ankit Kumar (B22CS076)
- Rishabh Acharya (B22CS090)
- Pujit Jha (B22CS091)
- Raj Nandan Singh (B22EE052)
- Ayush Pekamwar (B22EE084)
Group No: 32