Support Vector Machines (SVM) are a type of supervised machine learning algorithm used for classification and regression tasks. They work by finding the optimal hyperplane that separates different classes in a dataset. The goal is to maximize the margin between the closest data points of each class, known as support vectors, and the hyperplane.
SVM can handle both linear and non-linear data by using kernel functions, which transform the input space into a higher-dimensional space. This flexibility allows SVM to effectively classify complex datasets, making it a popular choice in various applications, including image recognition and text classification.