Support vector machines (SVMs) are a type of supervised machine learning model used for classification and regression analysis. SVMs can handle both linearly separable and non-linearly separable data by mapping data points to a higher dimension feature space. Kernels are used to compute dot products between data points without explicitly computing coordinates in the feature space. SVMs select a subset of training points, called support vectors, to define the decision boundary. They have advantages like effectiveness in high dimensions and memory efficiency.