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核函數

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