SVM is a supervised machine learning algorithm that can be used for classification or regression problems, but is mostly used for classification. It is effective in high dimensional spaces and cases where there are more dimensions than samples. SVMs use support vectors to make decisions, making them memory efficient. However, choosing the right kernel function and regularization is important to avoid overfitting when there are many more features than samples. SVMs also do not directly provide probability estimates.