Building a k-NN classifier engine for learning purpose
Reference: This project is completely based on the guidance provided in the book "Python Object-Oriented Programming Fourth Edition by Steven F.Lott and Dusty Phillips". This project is created purely for learning purpose.
This project is ideal for learning purposes because the Iris Classification is a simple well prepared problem. This helps one to focus more on best practice in software development. This project includes the following:
- Unit and regression tests
- Design patterns like strategy design pattern for choosing different distance algorithms
- Python's concurrent.futures for running computations in multiple cores to achieve massive speed boosts during the grid search for parameters
- CICD using GitHub Actions
The above diagram shows the UML diagram of the project.
Project Setup
Setup the required env variables
export CLASSIFIER_HOME_DIR=</../../k-NN-classifier>
Run the classifier
python knn_classifier.py --raw_inp_data_path <path_to_dataset>