import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')
from sklearn import svm
#利用numpy传入6组数据,将较小的数据贴上标签视为0,较大的为1
X =np.array([[1,2],
[3,4],
[2.4,2],
[10.3,15.2],
[13.7,16.4],
[15.3,17.8]])
#标签
y=[0,0,0,1,1,1]
#运用支持向量机中的SVC算法对传入的数据进行学习,运算,分类。
black_box = svm.SVC(kernel='linear',C=1.0)
black_box.fit(X,y)
#测试学习的结果,预测[15,17],此算法会贴上的标签
print(black_box.predict([[15,17]]))
#算出线性回归方程
w=black_box.coef_[0] #垂直向量
print(w)
a=-w[0]/w[1]
xx=np.linspace(0,18)
yy=a*xx -black_box.intercept_[0]/w[1]
H=plt.plot(xx,yy,'r-',label='not consider weight~')
plt.scatter(X[:,0],X[:,1],c=y)
plt.legend()
plt.show()
-------------------------
#运算结果
[1]
[0.08168746 0.1253287 ]
支持向量机的图形意义
最新推荐文章于 2022-01-01 23:44:01 发布