3.3 svm预测
python代碼:
import numpy as np import pylab as pl from sklearn import svm#創(chuàng)建點(diǎn) np.random.seed(0) X = np.r_[ np.random.rand( 10 ,2 )*10 - [ 10,10] , np.random.rand( 10 ,2 )*10 + [ 10,10] ] Y = [0] * 10 + [1] *10# 訓(xùn)練模型 clf = svm.SVC(kernel="linear") clf.fit(X,Y)#獲取分割超平面 w = clf.coef_ # 得到回歸系數(shù) intercept = clf.intercept_[0] # 得到截距 a = - w[0][0] / w[0][1] # 得到斜率 xx = np.linspace(-50,50) # 初始化 -5 到 5 的一個等差數(shù)列 yy = a * xx - ( intercept / w[0][1] ) # 得到超平面# 得到最上邊和最下邊的超平面 b = 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] ) # 得到最上邊的超平面#用 pylab畫圖 pl.plot(xx,yy) pl.plot(xx,yy_down) pl.plot(xx,yy_up) pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],s=80, facecolors='none') # 初始化函數(shù)模型 pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired) pl.axis('tight') pl.show()預(yù)測結(jié)果:
總結(jié)
- 上一篇: 3.2 svm预测
- 下一篇: 4.1 神经网络算法原理