Building a nonlinear classifier using SVMs
An SVM provides a variety of options to build a nonlinear classifier. We need to build a nonlinear classifier using various kernels. For the sake of simplicity, let's consider two cases here. When we want to represent a curvy boundary between two sets of points, we can either do this using a polynomial function or a radial basis function.
How to do it…
For the first case, let's use a polynomial kernel to build a nonlinear classifier. In the same Python file, search for the following line:
params = {'kernel': 'linear'}
Replace this line with the following:
params = {'kernel': 'poly', 'degree': 3}
This means that we use a polynomial function with degree 3. If you increase the degree, this means we allow the polynomial to be curvier. However, curviness comes at a cost in the sense that it will take more time to train because it's more computationally expensive.
If you run this code now, you will get the following figure:
You will also see the following classification...