sklearn之svm(持续更新)

一、线性svm

#用来画决策边界和支持向量的函数
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核函数

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章