Understanding Classification in Machine Learning: A Deep Dive