## What is SVM?

**Support Vector Machines = SVM is a fast and reliable classification system when you work with limited data**

To segregate groupings of data, the support vector machine SVM uses a margin or plane that is as precise as feasible in order to ensure that it will generalize well to cases it has never seen before. Using margins or lines to separate samples in a two-feature data set is an effective way to separate the training data. Support vectors are samples in the training data that are close to a line, plane, or hyperplane.

Different margins, planes, and hyperplanes can be utilized to separate sets of data. While trying to maximize the orthogonal distance between a plane and a support vector in each class, the SVM process attempts to minimize the orthogonal distance between two planes.

When there are values in the characteristics of two groups that tend to group around distinct values, such as forecasting values associated with a tumor grade or classifying different tissues with variable attenuation and textures presented, the SVM model can function (i.e. locate a useful margin or hyperplane).

**SVM technology****have been used to solve several image segmentation and classification problems with success**

They have two key advantages over algorithms like neural networks:

**greater speed****better performance**with thousands number of samples

This makes support vector machine classification particularly well suited to text classification issues, where it’s common to only have access to a few thousand tagged samples.

## How to use SVM

A simple example is the easiest way to understand the fundamentals of Support Vector Machines and how they work. Consider the following scenario: we have two tags: cat and dog, and our data has two features: a and b. Given a pair of coordinates, we want a classifier that tells us whether it’s a cat or a dog.

The hyperplane (which in two dimensions is essentially a line) that optimally separates the tags is produced by a support vector machine learning using these data points. This line serves as a decision boundary: everything falling on one side will be classified as a cat, while anything falling on the other will be classified as a dog.

What is, however, the best hyperplane? It’s the **one that optimizes the margins from both tags**, according to SVM. In other words, the hyperplane (in this case, a line) with the greatest distance to the nearest element of each tag.

This example was simple because the data was obviously linearly separable — all we had to do was draw a straight line to divide cat and dog. Unfortunately, things are rarely that straightforward.

When there isn’t a linear decision boundary, a third dimension is required.

We only have two dimensions up until now: a and b. You need to construct a new c dimension and specify that it be calculated in a certain method that is handy for you: c = a^{2} + b^{2}.

This will create a **three-dimensional environment**. By cleverly translating your space to a higher dimension, you can classify nonlinear data.

## Kernel function

There are many new dimensions to consider when computing this transformation, and each one may need a lengthy calculation. That said, it would be fantastic if we could find a cheaper way to do this for every vector in the dataset.

Vectors aren’t required for the magic of SVM to function; the dot products between the vectors will suffice. The new dimensions don’t need to be calculated, which saves us money.

- Use the new dot product to tell SVM to do its job — this is what we refer to as a
**kernel function**.

That is the kernel method, which allows us to avoid several costly calculations. When the kernel is linear, we get a linear classifier. However, by employing a nonlinear kernel, we may obtain a nonlinear classifier without altering the data at all: we simply change the dot product to that of the desired space, and SVM merrily chugs along.

**Kernel trick isn’t truly part of SVM**

It can be used in conjunction with other linear classifiers, such as logistic regression. A support vector machine is only concerned with determining the decision boundary.

All that’s left is for you to train the support vector machine! Take your labeled texts, transform them to vectors using word frequencies, and then input them to the algorithm — kernel function — so that it can generate a model. To classify new text, we transform it into a vector and feed it into the model. The model will then produce the text’s tag.