Support Vector Machines

The Mr. Perfect of Machine Learning Classifiers

Introduction

What are Support Vector Machines?

Support Vector Machines (SVM) are a very powerful class of supervised learning models with associated learning algorithms that analyze data used for classification and regression analysis. It presents one of the most robust prediction methods, based on the statistical learning framework (VC Theory). It is indigenously a non-probabilistic binary linear classifier, but can also perform efficient non-linear classification through the Kernel Trick.

What are the advantages of Support Vector Machines?

Support Vector Machines provide us with the best decision boundary there is between the two classes. It basically creates the widest street possible in between the classes. As a result, when there is a clear margin of separation between the classes, SVM works really well. Also, due to the Kernel Trick, it is highly efficient in higher dimensions. Due to its high efficiency, it reaches the optimum faster, and thus, can be effective in cases where the number of dimensions is greater than the number of samples.

Any other Machine Learning Classifier's Decision Boundary

Support Vector Machine's Decision Boundary

Playground

Show Instructions:

  • Click for adding a yellow point.
  • Shift + Click for adding a blue point.
  • Press C for clearing all the points you added.
  • Press U to undo the last point you added.
  • Press R to switch to the Gaussian kernel.
  • Press P to switch to the Polynomial kernel.
  • Press S to switch to the Sigmoid kernel.
  • Press L to switch back to the Linear kernel.
Browser not supported for Canvas. Get a real browser madafaqa.

C = 10.0

Information about the Model

The SVM algorithm is trying to plot a decision boundary separating the Yellow points from the Blue Points. The SVM tries to create the widest possible decision boundary that can be made between the two classes. The SVM implemented here uses the SMO algorithm to find the decision boundary.
Show More..

You have opted Linear Kernel to find the Decision boundary. A Linear Kernel is not a kernel per se, but the simple SVM. As evident, from the name, it finds a linear decision boundary between the classes, and works well when the classes are linearly separable. However, since the points here, are not linearly separable, we cannot use it to find the perfect decision boundary. What we can do though, is to allow the SVM to perform some misclassifications in order to achieve the best 'possible' decision boundary. Here comes the parameter C. This parameter is a universal parameter for all kernels, allowing them to perform a few misclassifications in order to complete the task.


Kernel Equation:          K\((\vec{x_i}, \vec{x_j})\) = \((\vec{x_i} \cdot \vec{x_j})\)

You can see the Training statistics below.

DSG IIT-R

Aaryan Garg | Abhinav Saini | Vivek Kumar