SVM (Support Vector Machine) is a supervised learning algorithm used mostly for classification, but also regression problems. In a classification problem, SVM provides an optimal hyperplane that separates the observations of both classes, in the case of a multiclass classification, the algorithm breaks down the problem into a set of binary problems. In a regression problem, SVM provides the best fit hyperplane within a defined threshold.