Support vector machines (SVMs) are a type of supervised machine learning algorithm used for classification and regression. SVMs learn by finding the optimal separating hyperplane that maximizes the margin between two classes of objects. SVMs can efficiently perform nonlinear classification using kernel methods. Key features of SVMs include their ability to handle high dimensional data, use different kernel functions for nonlinear classification, and avoid overfitting.