Methods to Avoid Over-Fitting and Under-Fitting in Supervised Machine Learning (Comparative Study)