Supervised Learning Types, Algorithms and Applications