#encoding=utf-8 """ @author=wanggang data:1.5,2020 """ import numpy as np import matplotlib.pyplot as plt from sklearn import svm x_data=np.r_[np.random.randn(20,2)-[-2,2],np.random.randn(20,2)+[2,2]] y_data=[0]*20+[1]*20 #print(y_data) plt.scatter(x_data[:,0],x_data[:,1],c=y_data) plt.show() #_________________________________ #model model=svm.SVC(kernel='linear') model.fit(x_data,y_data) print(model.coef_) print(model.intercept_)#这是截距 #获取分离平面 plt.scatter(x_data[:,0],x_data[:,1],c=y_data) x_test=np.array([[-5],[5]]) d=-model.intercept_/model.coef_[0][1] k=-model.coef_[0][0]/model.coef_[0][1] y_text=d+k*x_test plt.plot(x_test,y_text,'k') plt.show() #输出支持向量------------ print(model.support_vectors_) b1=model.support_vectors_[0] y_down=k*x_test+(b1[1]-k*b1[0]) b2=model.support_vectors_[-1]#这里是-1 y_up=k*x_test+(b2[1]-k*b2[0]) plt.scatter(x_data[:,0],x_data[:,1],c=y_data) x_test=np.array([[-5],[5]]) d=-model.intercept_/model.coef_[0][1] k=-model.coef_[0][0]/model.coef_[0][1] y_text=d+k*x_test plt.plot(x_test,y_text,'k') plt.plot(x_test,y_down,'r--') plt.plot(x_test,y_up,'b--') plt.show()
svm线性分类代码,可直接运行
最新推荐文章于 2020-11-12 20:50:12 发布