Implemented KMeans from scratch and trained it on Fashion-MNIST dataset by experimenting with initializaion methods like forgy, random partitions, kmeans++ and found the optimal number of clusters by implementing elbow & silhouette algorithms from scratch