一、线性svm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #用来画决策边界和支持向量的函数 def plot_svc_decision_function(model,ax=None,plot_support = True): "绘制二维的决定方程" if ax is None: ax = plt.gca() # 绘制一个子图对象 xlim = ax.get_xlim() ylim = ax.get_ylim() x = np.linspace(xlim[0],xlim[1],30) y = np.linspace(xlim[0],ylim[1],30) Y, X = np.meshgrid(y,x) xy = np.vstack([X.ravel(),Y.ravel()]).T P = model.decision_function(xy).reshape(X.shape) # 绘制决策边界 ax.contour(X,Y,P,colors='k',levels=[-1,0,1],alpha=0.5,linestyles=['--','-','--']) # 绘制支持向量 if plot_support: ax.scatter(model.support_vectors_[:,0],model.support_vectors_[:,1],s = 300,linewidth=1,facecolors='none') ax.set_xlim(xlim) ax.set_ylim(ylim) |
#调用后要加一行代码:
plt.show()
二、非线性SVM ,常用的rbf核函数