Striking a balance between supervised & unsupervised machine learning