Three different types of SVM-Kernels are displayed below. The polynomial and RBF are especially useful when the data-points are not linearly separable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | print (__doc__) # Code source: Ga Varoquaux # License: BSD 3 clause import numpy as np import matplotlib.pyplot as plt from sklearn import svm # Our dataset and targets X = np.c_[(. 4 , - . 7 ), ( - 1.5 , - 1 ), ( - 1.4 , - . 9 ), ( - 1.3 , - 1.2 ), ( - 1.1 , - . 2 ), ( - 1.2 , - . 4 ), ( - . 5 , 1.2 ), ( - 1.5 , 2.1 ), ( 1 , 1 ), # -- ( 1.3 , . 8 ), ( 1.2 , . 5 ), (. 2 , - 2 ), (. 5 , - 2.4 ), (. 2 , - 2.3 ), ( 0 , - 2.7 ), ( 1.3 , 2.1 )].T Y = [ 0 ] * 8 + [ 1 ] * 8 # figure number fignum = 1 # fit the model for kernel in ( 'linear' , 'poly' , 'rbf' ): clf = svm.SVC(kernel = kernel, gamma = 2 ) clf.fit(X, Y) # plot the line, the points, and the nearest vectors to the plane plt.figure(fignum, figsize = ( 4 , 3 )) plt.clf() plt.scatter(clf.support_vectors_[:, 0 ], clf.support_vectors_[:, 1 ], s = 80 , facecolors = 'none' , zorder = 10 ) plt.scatter(X[:, 0 ], X[:, 1 ], c = Y, zorder = 10 , cmap = plt.cm.Paired) plt.axis( 'tight' ) x_min = - 3 x_max = 3 y_min = - 3 y_max = 3 XX, YY = np.mgrid[x_min:x_max: 200j , y_min:y_max: 200j ] Z = clf.decision_function(np.c_[XX.ravel(), YY.ravel()]) # Put the result into a color plot Z = Z.reshape(XX.shape) plt.figure(fignum, figsize = ( 4 , 3 )) plt.pcolormesh(XX, YY, Z > 0 , cmap = plt.cm.Paired) plt.contour(XX, YY, Z, colors = [ 'k' , 'k' , 'k' ], linestyles = [ '--' , '-' , '--' ], levels = [ - . 5 , 0 , . 5 ]) plt.xlim(x_min, x_max) plt.ylim(y_min, y_max) plt.xticks(()) plt.yticks(()) fignum = fignum + 1 plt.show() |
Total running time of the script: (0 minutes 0.305 seconds)
Download Python source code:
plot_svm_kernels.py
Download IPython notebook:
plot_svm_kernels.ipynb
Please login to continue.