What is a support vector machine (SVM)?