ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注
生活随笔
收集整理的這篇文章主要介紹了
ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ML之SVM:基于sklearn的svm算法實現對支持向量的數據進行標注
?
?
目錄
輸出結果
實現代碼
?
?
?
?
?
輸出結果
?
實現代碼
import numpy as np import matplotlib.pyplot as pl #python中的繪圖模塊 from pylab import showfrom sklearn import svmnp.random.seed(0) #隨機固定隨機值 X = np.r_[np.random.randn(20,2)-[2,2],np.random.randn(20,2)+[2,2]] #隨機生成左下方20個點,右上方20個點 Y = [0]*20+[1]*20 #將前20個歸為標記0,后20個歸為標記1#建立模型 clf = svm.SVC(kernel='linear') clf.fit(X,Y) #傳入參數#畫出建立的超平面 w = clf.coef_[0] #取得w值,w中是二維的 a = -w[0]/w[1] #計算直線斜率 xx = np.linspace(-5,5) #隨機產生連續x值 yy = a*xx-(clf.intercept_[0])/w[1] #根據隨機x得到y值#計算與直線相平行的兩條直線 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])print('w:',w) print('a:',a) print('support_vectors:',clf.support_vectors_) print('clf.coef_',clf.coef_)#畫出三條直線 pl.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=100,c="g") #,facecolors='none',zorder=10 pl.scatter(X[:,0],X[:,1],c=Y, cmap=pl.cm.Paired)pl.axis('tight') pl.title('The bold circle is the support vector') pl.show()?
?
總結
以上是生活随笔為你收集整理的ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML之RF:基于RF算法实现案例(数据集
- 下一篇: ML之SVM:基于SVM(sklearn