首页 > 代码库 > 支持向量机学习笔记2

支持向量机学习笔记2

1 sklearn简单例子from sklearn import svmX = [[2, 0], [1, 1], [2,3]]y = [0, 0, 1]clf = svm.SVC(kernel = ‘linear‘)clf.fit(X, y)  print clf# get support vectorsprint clf.support_vectors_# get indices of support vectorsprint clf.support_ # get number of support vectors for each classprint clf.n_support_ 2 sklearn画出决定界限print(__doc__)import numpy as npimport pylab as plfrom sklearn import svm# we create 40 separable pointsnp.random.seed(0)X = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]Y = [0] * 20 + [1] * 20# fit the modelclf = svm.SVC(kernel=‘linear‘)clf.fit(X, Y)# get the separating hyperplanew = clf.coef_[0]a = -w[0] / w[1]xx = np.linspace(-5, 5)yy = a * xx - (clf.intercept_[0]) / w[1]# plot the parallels to the separating hyperplane that pass through the# support vectorsb = clf.support_vectors_[0]yy_down = a * xx + (b[1] - a * b[0])b = clf.support_vectors_[-1]yy_up = a * xx + (b[1] - a * b[0])print "w: ", wprint "a: ", a# print " xx: ", xx# print " yy: ", yyprint "support_vectors_: ", clf.support_vectors_print "clf.coef_: ", clf.coef_# In scikit-learn coef_ attribute holds the vectors of the separating hyperplanes for linear models. It has shape (n_classes, n_features) if n_classes > 1 (multi-class one-vs-all) and (1, n_features) for binary classification.# # In this toy binary classification example, n_features == 2, hence w = coef_[0] is the vector orthogonal to the hyperplane (the hyperplane is fully defined by it + the intercept).# # To plot this hyperplane in the 2D case (any hyperplane of a 2D plane is a 1D line), we want to find a f as in y = f(x) = a.x + b. In this case a is the slope of the line and can be computed by a = -w[0] / w[1].# plot the line, the points, and the nearest vectors to the planepl.plot(xx, yy, ‘k-‘)pl.plot(xx, yy_down, ‘k--‘)pl.plot(xx, yy_up, ‘k--‘)pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],           s=80, facecolors=‘none‘)pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)pl.axis(‘tight‘)pl.show()

  

支持向量机学习笔记2