The goal is to create a Classification Model for Images. The task would be the same as a typical Data Science Project, Data Preprocessing, Feature Engineering, Building a Model, Tuning a Model, and predicting the Image classes on the Test cases.

Task:
- Build [KNN](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html) and [SVM](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html) models and compare their results.
- Choose one of the tuned models for the final submission.
- Tuning of Parameters: 
Use [Grid Search](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html) for SVM. 
Some List of [Proximity measures](https://www.kdnuggets.com/2020/11/most-popular-distance-metrics-knn.html) for consideration for KNN
- Show the Plots for parameter tuning on training or validation sets.

Suggested Workflow:
1. Read the data, Python Libraries to consider: Matplotlib, PIL, cv2 or any
2. Preprocess the data (Sklearn library)
    * [Data Split](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html)
    * Flatten Files
    * [[Dimensionality Reduction]](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html)
    * Image Augmentation?, not necessary!
[Article](https://towardsdatascience.com/data-augmentation-techniques-in-python-f216ef5eed69) describing the different augmentation techniques.
    * any other
3. Model initiation and training.
4. Model tuning.
5. Comparisons.